Skip to content

Preview - #1019

Merged
1lck merged 12 commits into
mainfrom
preview
Oct 1, 2026
Merged

Preview#1019
1lck merged 12 commits into
mainfrom
preview

Conversation

@1lck

@1lck 1lck commented Oct 1, 2026

Copy link
Copy Markdown
Owner

No description provided.

1lck and others added 11 commits September 30, 2026 23:02
fix(runtime): 自动选择符合项目要求的 JDK,统一两端启动与设置 (#815)
#994 给 JavaDebugLaunchTarget.init 增加了必填的 projectName,但漏改
hotUpdateRestartKeepsOtherDebugSessionsAlive(DebugModuleTests.swift:45-46),
导致 macos/Tests/LitheDebugModuleTests 无法编译,Swift tests 车道自 4c5e137 起持续失败。

取值为同一文件内相邻用例 explicitHotUpdateRestart... 已有的 projectName: "app" 写法。

验证:swift build --build-tests 通过;
./scripts/test-macos.sh --filter "DebugModuleTests|workbenchBackground"
→ 58 tests in 3 suites passed。

Co-authored-by: chdtiger <17791972621@163.com>
Co-authored-by: Xiaoyumuxi <3075514079@qq.com>
* fix(macos): prevent translucent IME overlay text ghosting

* test(macos): verify IME styles through production entrypoint
* fix(windows): expand omitted lines in working-tree file diffs (#557)

Single-file working-tree diffs were rendered from a sparse Git patch with
Monaco folding disabled, so there was nothing to expand and the fold
controls disappeared.

- Request the whole file as context for single-file reviews and mark the
  result as full context; only those reviews enable folding.
- Split full-context patches back into Git-equivalent 3-line hunks so
  hunk staging keeps its granularity.
- Place hunk action bands by an explicit row anchor and per-side line
  count, keeping both sides aligned.
- Re-attach the diff models when the text is replaced so the first real
  text after the empty mount folds instead of opening fully revealed.

Co-Authored-By: Claude <noreply@anthropic.com>

* test(windows): route full-context diff responses by command

The new full-context API tests queued their response with
mockImplementationOnce, which assumed git_diff_file was the next invoke.
Under CI's randomized order, repository discovery is sometimes not yet
cached, so git_discover_repo consumed the queued response and the diff
returned null (seed=1). Answer git_diff_file by command instead.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
* chore(issue): 强制非维护者通过 Issue 表单提交 (#990)

- Bug / Feature 表单新增 issue-form:bug、issue-form:feature 来源标签
- 新增 lithe-issue-form-gate 工作流:issues opened 时校验作者权限,
  非 write/maintain/admin 作者且无表单标签时双语评论并关闭
- 判定逻辑抽到 .github/lithe-issue-form/logic.mjs,权限未知、表单标签
  未创建、转移等不确定情况一律不关闭
- 新增 scripts/test-lithe-issue-form-gate.mjs 覆盖验收标准
- 新增 process Agent Note 记录决策与备选方案

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(issue): 关闭前重新读取 Issue 以避免标签写入时序误关 (#990)

表单标签可能在 Issue 创建后约 1 秒才写入(见 #987 的事件记录),
在评论和关闭前再读一次 Issue 并重新判定,出现表单标签或已被关闭时不处理。

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(issue): address form gate review and add workflow regression coverage

---------

Co-authored-by: Claude <noreply@anthropic.com>
* feat(windows): 设置入口从活动栏底部移至标题栏搜索按钮旁

- Windows 标题栏在搜索(放大镜)按钮后新增设置齿轮按钮,点击打开设置对话框
- 活动栏移除设置项,右键「在活动栏中显示」列表不再包含设置
- settings 移出活动栏 ID 集合,旧设置文件中遗留的排序/隐藏条目在归一化时自动清理
- 同步更新 item-order 与 git-log keymap 测试断言,新增 settings 不属于活动栏的防回归断言
- 平台功能矩阵新增 workbench-settings-entry 行并重新生成 md/csv 视图

* fix(scripts): verify-windows-boundaries 豁免过滤兼容 Git Bash/Windows

豁免正则以 "/" 开头会被 Git Bash (MSYS) 当作路径改写,加上 ripgrep 在
Windows 上输出反斜杠分隔路径,导致 core/lithe-core-client 与
platform/tauri-core 两个合法豁免文件被误判为违规。改为字符类开头并
兼容两种分隔符;已在 Windows 验证干净树通过、植入违规文件能被捕获。

* feat(windows): 底部面板默认通栏并保持活动栏通高

- 终端/底部面板默认宽度模式由 editor 改为 full,与 IDEA 默认一致
- 两条活动栏提到最外层保持通高,通栏面板只位于活动栏之间,
  左侧底部按钮不再被面板顶上去;editor 模式布局不变
- 新增 terminal.store 默认值与切换的单测
- 更新 terminal-sessions 矩阵验证描述并重新生成矩阵视图

* feat(windows): 面板去描边、侧边栏间距 6px、Git Log 统一底色

- 侧边栏、编辑区、底部面板去掉外圈描边,仅靠内容区/间隔区纯色区分
- 新增 --lithe-sidebar-gap(6px),左侧侧边栏与编辑区间距及其拖动条使用该值
- Git Log 标题栏、提交表、检查器、引用树的灰色/半透明背景统一为 bg-background,
  与编辑区底色一致
- 同步更新 workbench-panel-frame 测试断言,并修正标题栏类名的过期断言

* fix(windows): Commit files 文件名不再因末尾计数/状态撑开而提前截断

- file-tree-row 的 span:last-child 规则会让末尾的计数/状态 trailing 也参与
  剩余宽度分配,与文件名平分空间,导致右侧留白而文件名出现省略号
- 仅对 Commit files 树新增 git-commit-file-tree 作用域规则,使 trailing 不再伸展,
  文件夹/文件名占满剩余宽度;文件浏览器等其他树不受影响
- 新增回归测试

* feat(windows): Git Log 单击提交/文件在编辑区预览单文件 diff

- 单击提交后编辑区预览该提交文件树中的第一个文件 diff;仅用户点击触发,
  刚打开 Git Log 不会自动抢占编辑区
- 单击或双击 Commit files 中的文件只显示该文件 diff,不带提交说明,
  不再打开整个提交的多文件页面
- 所有预览复用同一个 diff://commit-file-preview 标签,快速连点时丢弃过期请求
- MultiFileDiff 新增 hideFileList,单文件预览不显示已更改文件列表及其切换按钮
- 检查器记录文件所属的选择,避免新提交加载期间误用上一提交的文件做预览
- 新增 getFirstCommitFilePath、findCommitFileDiff、createCommitFileDiffPreview 及测试
- 更新 git-history 矩阵验证描述并重新生成矩阵视图

* feat(windows): 右上角 Extensions 按钮再次点击可关闭扩展页

Extensions 标签页为当前活动标签时,点击右侧活动栏的扩展按钮会关闭该标签页;
未打开或位于后台时仍按原行为打开/切换。同步更新源码断言测试。

* fix(windows): 面板分隔条去掉蓝色高亮,左右光标改为 ew-resize

- 活动栏、侧边栏/AI 面板、底部面板、编辑区分屏、文件导航侧边栏的分隔条
  悬停与拖动时不再显示蓝色背景和蓝色竖线,保留调整光标与拖拽行为。
- 左右分隔条光标由 col-resize 改为 ew-resize(上下分屏 row-resize 改为
  ns-resize),避免 Windows 上箭头中间出现竖线,并与底部面板保持一致。

* feat(windows): Source Control 无改动时不再显示 Working tree clean 提示

工作区干净时侧边栏保持空白,移除空状态的勾选图标与文字,
并清理不再使用的 git.workingTreeClean 文案。

* feat(windows): Commit files 去掉 A/M 状态字母,文件数量移到文件夹名旁

- 文件行右侧不再显示 A/M/D 状态字母(文件名颜色仍保留状态区分)
- 文件夹的改动文件数量从右侧移到文件夹名旁,并附带 file/files 单位
- 新增 git.log.fileCountOne 文案处理单数;中文保持“N 个文件”
- 移除仅为右侧 trailing 列存在的 :last-child CSS 覆盖,并同步更新测试

* feat(windows): Git Log 去掉 Commit/Author/Date 表头行

- 移除提交列表上方的列标题行
- 删除不再使用的 git.log.commit / git.log.author / git.log.date 文案

* feat(windows): Git Log 日期列改为 12 小时制并显示相对时间(参考 IDEA)

- 1 小时内的提交显示 "N minutes ago"(不足 1 分钟显示 "Just now")
- 今天和昨天的提交显示 "Today / Yesterday + h:mm AM/PM"
- 更早的提交显示 "YYYY/MM/DD h:mm AM/PM",不再使用 24 小时制
- 新增 git.log.date* 中英文文案;日期列加宽以容纳 AM/PM
- 新增 formatGitLogDate 及单元测试,无法解析的日期原样显示

* feat(windows): Git Log 英文日期改为日/月/年,作者和日期列样式与提交说明对齐

- 较早提交的日期顺序由文案决定:英文 DD/MM/YYYY,中文 YYYY/MM/DD
- 作者和日期列去掉等宽字体与 11px 字号,颜色改为 text-foreground,与提交说明一致

* feat(windows): Git Log 的 Author/Date 列支持在每一行的列边缘拖动调整宽度

- 表头去掉后,每一行的 Author、Date 列左边缘都有拖动手柄,拖动即可调整整列宽度
- 宽度通过滚动容器上的 CSS 变量下发:拖动中按帧直接写 DOM,不触发虚拟列表重渲染,
  松手后才写入 git-log-preferences 持久化,下次打开沿用
- 列宽有最小/最大限制,行最小宽度随列宽动态计算,避免提交说明被挤没
- 光标使用 ew-resize,无蓝色高亮,与其他面板分隔条一致;拖动遮罩防止松手触发行选中
- startDocumentResizeSession 挪到 src/utils 共享(run 侧保留 re-export),
  新增 direction(反向拖动)和 cursor 选项
- 新增列宽钳制、拖动会话选项、拖动手柄交互(happy-dom)的单元测试

* feat(windows): Git Log 的 Date 列改为左对齐,左内边距与 Author 列一致

* fix(windows): Git Log 列拖动手柄向列内侧扩展,贴近文字起点

* feat(git): Git Log 仅对同时区提交显示相对时间,中文 12 小时制显示上午/下午,鼠标移入行时刷新

- Core 提交日期改用 --date=format:%Y/%m/%d %H:%M %z,parse_commit 拆出作者 UTC 偏移,
  新增 dateUtcOffsetMinutes 字段(date 显示格式不变),更新契约文档与共享 fixture
- Windows 仅在作者时区与本机一致时显示 刚刚/N 分钟前/今天/昨天,否则显示日期
- AM/PM 进入 i18n,中文显示 上午/下午
- 日期单元格在鼠标移入所在行时刷新相对时间

* refactor(windows): 移除 Commit files 树上未使用的 git-commit-file-tree 类名

* test(windows): Git Log 列宽拖动测试改用注入的帧调度器,移除真实定时器

CI 的 write-stable-tests 检查(--platform windows/all)拒绝测试中的真实 setTimeout。
useGitLogColumnResize 新增可选 frameScheduler 参数透传给拖动会话,测试用手动帧队列确定性地刷新宽度。

* fix(windows): preserve Git Log preview revisions and invalidate stale requests

---------

Co-authored-by: lick <2188718831@qq.com>
* feat(windows): JDK 8 超长 classpath 改用临时 manifest JAR 启动 (#955)

JDK 8 不支持 @argfile,Windows 普通 Run 遇到超长 classpath 时
CreateProcessW 直接失败。现在已确认 JDK < 9 时由 Core 规划一个只含
META-INF/MANIFEST.MF 的临时 classpath JAR(Class-Path 写绝对、
百分号编码的 file: URL,目录以 / 结尾,72 字节折行),宿主写到
temp_dir()/lithe-run 并沿用 argfile 的独占创建与 RAII 清理。
JDK 9+ 仍走 argfile,版本未知保持原命令。

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(core): classpath JAR 规划正确处理 Windows 长路径前缀 (#955)

自审发现 \\?\C:\... 和 \\?\UNC\... 形式的条目或工作目录会被当成主机名
为 "?" 的 UNC 路径,生成错误的 file: URL。现在先还原为普通盘符/UNC
路径;其他 \\?\ 与 \\.\ 设备路径无法表示为 file: URL,保持原命令启动。

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(windows): prepare Java launches off the UI thread (#955)

Guard pending launches against stop/restart races, preserve execution and window ownership, and clean reservations on failure. Register per-execution Java files as non-reusable resources with tests and lifecycle documentation.

---------

Co-authored-by: Claude <noreply@anthropic.com>
* fix(git): Windows Git Log 提交详情显示完整提交信息 (#771)

历史分页只读取 `%s`(标题),Windows 详情面板虽然会渲染
`commit.description`,但该字段从未被填充,导致只能看到标题。

- Rust Core `git.commit` 额外返回 `body`(Git `%b`)。正文放在 NUL
  之后,不会和 `%x1f` 分隔的头部字段冲突;同时加 `--no-show-signature`
  防止签名输出混入。历史分页契约保持不变。
- 共享契约和新增 fixture `commit-lookup-response-v1.json` 记录 `body`。
- Windows 选中提交时按需读取正文(缓存 200 条),并忽略过期的响应;
  复制提交信息、打开提交 Diff 时同样带上正文。
- 详情区抽成 `GitCommitDetails` 组件,补充 Rust 与 bun 回归测试,并
  更新平台功能矩阵。

Co-Authored-By: Claude <noreply@anthropic.com>

* test(git): Windows 提交正文读取校验共享 fixture (#771)

Windows 消费者测试直接读取 commit-lookup-response-v1.json,确保两端
对 git.commit 的 body 字段使用同一份契约样例。

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(git): discard stale commit message diff requests (#771)

Guard both asynchronous reads against replaced requests, repository changes and unmount. Preserve the current loading state, settle test continuations, and run the commit API, details and diff ownership regressions in Windows CI.

---------

Co-authored-by: Claude <noreply@anthropic.com>
#725 报告 Windows 端编辑器标签页右键菜单的关闭操作位置偏下,
希望和常见 IDE 的菜单分组顺序一致,让关闭分组排在其他操作之前。

- 把 close / close-others / close-right / close-all 从 sep-3 分隔线之后
  移到菜单首组,紧随其后新增 sep-close 分隔线隔开后续操作
- 关闭项的 X 图标、Ctrl+W / Cmd+W 快捷键和点击行为保持不变
- 新增 tab-context-menu.test.ts 断言分组顺序,避免后续回归
- 更新 shared/platform-feature-matrix.json 的 editor-text-tabs 证据与验证动作,
  并重新生成 platform-parity-matrix 视图

Co-authored-by: liqiuhu <qiuhu.li@hopechart.com>
Co-authored-by: Xiaoyumuxi <3075514079@qq.com>
Co-authored-by: Lichenkang <2188718831@qq.com>
Unstaged single-file working-tree reviews now offer a Rollback action next
to Stage on every change block, matching macOS "Discard this change block".

- Add git_discard_hunk: the host rebuilds the hunk patch and routes it to
  git.apply in discard mode (git apply --reverse, worktree only).
- Add discardHunk(repoPath, hunk) to git-status-api, emitting a
  working-tree change event so the review reloads.
- The hunk action owner exposes several actions per patch, asks for
  confirmation through the existing confirmBeforeDiscard setting, rejects
  clicks while the dialog is open, and drops answers for a replaced patch.
- Rollback is withheld from staged, multi-file, history, comparison and
  truncated reviews, new/deleted/renamed/binary files, and files with staged
  edits (their HEAD-to-worktree snapshot also contains staged blocks).
- Refresh records live staged state so eligibility follows Git status.
- Core test reverse-applies a rebuilt full-context block in a real repo.

Co-authored-by: Claude <noreply@anthropic.com>
Adds visual Git change markers in the editor gutter with click-to-peek inline diff viewer for Windows.

**New components:**
- GitGutterController: manages gutter decorations, peek widget lifecycle, and Monaco integration
- GitGutterPeekWidget: inline diff viewer with prev/next navigation, displays HEAD vs working tree
- git-gutter-changes: computes line-level diff markers (added/modified/deleted) from Git status and file diff
- use-git-gutter-base: React hook providing gutter data and navigation actions

**Settings:**
- New toggle "git.showGutterChanges" (default true) in Git Settings panel
- Search index updated for "gutter" and "inline diff" keywords

**Behavior:**
- Green bar: added lines; Blue bar: modified lines; Red triangle: deleted lines
- Click marker opens inline diff at that change
- Up/Down arrows navigate between changes
- Widget closes on Escape, editor blur, or file change
- Peek models disposed on widget close to prevent leaks

**Not included (for follow-up):**
- Revert/stage actions in peek widget (depends on PR #1015 merge)
- macOS implementation (Windows-only for now)

Refs #681

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@ghfind-review ghfind-review Bot added the review: high ghfind author score; see https://ghfind.com label Oct 1, 2026
@1lck
1lck merged commit 68d43db into main Oct 1, 2026
7 checks passed

This branch was successfully deployed

1 active deployment
github-pages — afb7a766 Deployed Oct 1, 2026 by 1lck via deploy #163
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.

3 participants