Skip to content

fix(macos): 修复工作台壁纸下编辑器右侧黑边 - #943

Merged
1lck merged 3 commits into
1lck:previewfrom
Mucheen:codex/agent-panel-black-edge
Sep 28, 2026
Merged

1lck merged 3 commits into
1lck:previewfrom
Mucheen:codex/agent-panel-black-edge

Conversation

@Mucheen

@Mucheen Mucheen commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

问题与原因

macOS 工作台启用壁纸和代码缩略图后,编辑器最右侧会出现贯穿页面的黑色竖条;打开 Agent 面板时,黑条会随编辑器边界左移。原因是宿主已将编辑器和缩略图背景设为透明,但没有指定 Monaco 概览标尺的背景。Monaco 在右侧缩略图启用时会为概览标尺补上默认分词背景色,形成这条不透明的竖条。

改动内容

  • 将宿主提供的编辑器背景色同时映射到 editorOverviewRuler.background:壁纸模式保持透明,普通主题继续使用实体背景;保留缩略图及滚动功能。
  • 扩展真实 WebKit 工作台集成测试,检查主题变量及概览标尺画布像素,覆盖实体背景和透明背景两种状态。
  • 在 Monaco 架构笔记中记录默认背景的成因,并新增对应的跨平台功能矩阵条目及生成视图。Windows 使用独立主题实现,macOS 原生工作台壁纸能力在矩阵中标为平台专属。

验证

  • ./scripts/probe-macos-monaco.sh --workbench-tests 通过;主题场景直接断言概览标尺在普通主题为实体色、壁纸主题为全透明像素。
  • ./.agents/skills/write-stable-tests/scripts/verify-test-stability.sh 通过。
  • ./scripts/verify-agent-notes.sh、./scripts/verify-platform-feature-matrix.sh、./scripts/verify-platform-feature-matrix-change.sh upstream/preview HEAD 通过。
  • ./scripts/verify-runtime-bundle-immutability.sh、node scripts/verify-editor-boundaries.mjs、git diff --check 通过。
  • 本地预览打开壁纸、文本文件和 Agent 面板后,编辑器右缘不再显示黑色竖条。功能矩阵保留待验证状态,供后续完整界面验收。

后续 CI 修复

  • 合并最新 preview,按合并后的功能矩阵源数据重新生成 Markdown 与 CSV,解决 PR 的合并冲突。
  • Windows Test real JDT 任务中的 JDT 集成测试已经通过;实际失败的是 patch_metadata_can_list_an_oversized_export_before_selecting_a_small_subset。它要写入并检查超过 32 MiB 的真实文件,在 Windows runner 上触发了默认 15 秒的单测试超时(报告记录 16.12 秒),随后汇总 gate 跟着失败。
  • 仅为该集成测试设置 30 秒的有界进程预算,并同步 Windows 本地测试脚本及测试策略说明;其他测试仍使用 15 秒默认预算。没有更改产品代码或削弱测试断言。
  • 本地已通过测试稳定性静态检查、Agent Note 检查、功能矩阵检查及变更 gate、运行时包只读检查、编辑器边界检查和 git diff --check。当前 macOS 环境缺少 Cargo 与 PowerShell;推送后的 Windows CI 全部通过,原超时测试在报告中用时 2.331 秒、状态为 passed,Windows CI gate 通过。

@ghfind-review ghfind-review Bot added the review: medium ghfind author score; see https://ghfind.com label Sep 28, 2026

@1lck 1lck left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lithe Review

结论:未发现需要阻塞合并的问题。当前 CI 尚未全绿,失败项需单独处理后再判断合并条件。
范围: preview ← PR #943,共同基点 9bc8300c417086585acedff43ef2060c6ff2db0e 至 d7a5362039707a74a72f0ed5c2e4e92dbeecc70f,6 个变更文件。

Scope Check

  • 主题适配沿用宿主现有 background 输入,把它同时映射到 Monaco 原生 editorOverviewRuler.background;透明壁纸和普通实体背景共用同一条路径,没有写死始终透明,也没有关闭缩略图来掩盖问题。
  • 追踪 defineWorkbenchTheme → workbench.configure → updateOptions/setTheme,并检查真实 WebKit 测试。新增断言同时验证 CSS 主题变量和 overview ruler canvas 像素,覆盖实体及全透明两种状态;显式 render 后采样,finally 恢复主题并清理模型,没有新增计时轮询。
  • 架构 Note、平台功能矩阵和生成视图已同步;Windows 使用独立主题实现,未把本次 macOS 原生壁纸行为宣称为 Windows 已支持。未找到可验证的关联 Issue,按 PR 描述的黑边问题审查。

Verification

  • 本地 diff、程序包只读、功能矩阵及变更门禁、Agent Notes、测试稳定性静态检查、共享编辑器边界检查均通过。
  • 当前 head 的 macOS CI 已通过;真实 WebKit 工作台测试已登记在 arm64 release-package 作业。
  • Windows 的 Test real JDT on Windows 失败,Windows CI gate 随之失败。实际日志失败用例为 lithe_core::tests::git_patch_exchange::patch_metadata_can_list_an_oversized_export_before_selecting_a_small_subset,记录 16120ms;这是本 PR 未修改的 Rust Git 补丁测试,不把它归因为本次 Monaco 主题回归,也不把当前 CI 记作全部通过。
  • 本次未运行完整构建、测试或原生 UI;没有生成新的编译缓存。代码缺陷依据当前 head 的调用链分析,未声称已在 Windows/macOS 实机复现。

Summary

改动范围集中,复用 Monaco 公开主题配置,代码、测试和说明一致。建议处理上述 Windows CI 失败并取得更新后的验证结果;当前 review 为 COMMENT,不代表批准或合并。

@1lck

1lck commented Sep 28, 2026

Copy link
Copy Markdown
Owner

@Mucheen CI挂了

@1lck
1lck merged commit f53f65d into 1lck:preview Sep 28, 2026
15 of 16 checks passed
1lck added a commit that referenced this pull request Sep 29, 2026
* fix(windows): disable font ligatures in run output (#编号) (#959)

* fix(windows): disable font ligatures in run output for literal log fidelity

Geist Mono ships programming ligatures, so separator banners like
'=====' rendered as solid double lines and '=>'/'!=' folded into single
glyphs, which no longer matches the bytes the process actually emitted.
Log viewers should stay literal: set font-variant-ligatures:none on the
run output so every character is rendered individually. Copied text was
always correct; only the display changed.

* docs: record run and Maven output ligature verification

---------

Co-authored-by: Lichenkang <2188718831@qq.com>

* fix(macos): move plugin management into IDEA-style settings (#813) (#928)

* fix(macos): move plugin management into IDEA-style settings (#813)

* fix(macos): show only PHP in plugin settings (#813)

* fix(macos): align settings background with workbench theme

* style(macos): unify settings input control roles

* fix(macos): align settings window behavior and control borders with IDEA

* feat(macos): resize settings sidebars with bounded split handles

* fix(macos): keep arrow cursor on settings controls

* fix(macos): apply plugin drafts on settings OK and align focus styles

* fix(macos): adjust settings plugin splitter bounds and drag style

* fix(macos): guard plugin settings during apply

* fix(macos): keep settings bound to opener and restore PHP install path

* fix(macos): keep plugin apply bound to its settings session

---------

Co-authored-by: Xiaoyumuxi <3075514079@qq.com>
Co-authored-by: Lichenkang <2188718831@qq.com>

* test(windows): cover Maven Run toolchain overrides and inheritance (#940)

* feat(windows): 在设置中新增 Maven 配置页并统一三处 Maven 配置

* feat(windows): 在设置中新增 Maven 配置页并统一三处 Maven 配置

* feat(windows): 在设置中新增 Maven 配置页并统一三处 Maven 配置

* feat(windows): 在设置中新增 Maven 配置页并统一三处 Maven 配置

* fix: 补齐 Maven 设置矩阵并修复保存重试、检测竞态及仓库回退

* fix(windows): 恢复 Maven 生效配置解析

* fix(windows): make Maven settings detection bounded and accurate

* `fix: 以 Maven 设置作为 Windows Run 启动路径的唯一来源`

* fix: 修复合并后的平台功能矩阵冲突

* `fix: 以 Maven 设置作为 Windows Run 启动路径的唯一来源`

---------

Co-authored-by: Jay <jay@sztus.com>
Co-authored-by: Lichenkang <2188718831@qq.com>
Co-authored-by: Jay <fan_jie@sonadora.com.cn>

* fix(macos): 修复壁纸模式编辑器右侧黑边 (#943)

Co-authored-by: Lichenkang <2188718831@qq.com>

* 优化 macOS 设置窗口布局、控件及全局按钮样式 (#944)

* style(macos): align settings panels with IntelliJ UI

* style(macos): match IntelliJ settings dropdown popup

* fix(macos): stabilize settings popup and accessibility

* fix(macos): localize settings breadcrumb categories

* feat(macos): organize keymap settings as action tree

* style(macos): refine keymap settings tree controls

* style(macos): align keymap toolbar icons and search field with IDEA

* style(macos): preserve IntelliJ keymap icon colors and tree glyphs

* style(macos): remove pressed dimming from borderless buttons

* style(macos): hide keymap gear menu indicator

* fix(macos): expose selected settings option to accessibility

* fix(macos): use shared context menus in keymap settings

* ci(windows): bound workspace commit integration test at 30 seconds

* fix(macos): allow settings select trigger to close its popup

* test(macos): cover settings select popup click sequence

* fix(macos): label keymap toolbar controls for accessibility

* docs: remove duplicate settings verification steps

* docs: remove duplicate settings verification steps

* docs: remove duplicate settings verification steps

---------

Co-authored-by: Xiaoyumuxi <3075514079@qq.com>

* fix(windows): polish title bar and loading icons (#971)

* fix(windows): align window and loading icons

* fix(windows): use standard service rescan icon

* fix(windows): unify refresh icon mapping

* fix(windows): limit refresh icon overrides to controls

* fix(windows): wire command palette window actions

* feat(windows): 改进标题栏菜单交互与项目图标布局 (#976)

Co-authored-by: lick <2188718831@qq.com>

* fix(maven): 让 Maven 设置真正作用于 JDT LS,并修复 Windows 依赖面板(#970) (#977)

* fix(maven): 让 Maven 设置真正作用于 JDT LS,并修复 Windows 依赖面板(#970)

Windows 依赖面板每次都报 “Unable to load Maven dependencies”:前端 invoke
按手工白名单分流,漏登记的 maven_create_dependency_output 等 5 个宿主命令
被 platform_invoke 当作未实现拒绝,字符串错误又被 store 换成通用提示。
改为按归属规则路由并用 main.rs 契约测试锁定,宿主错误统一包装成 Error。

第三方 import 标红来自 Maven 配置到不了 JDT LS:保存设置只标记重载,
重载又是重启 JDT LS,而 JDT LS 对 pom 未变的项目不重新解析;生成的
settings 路径固定,JDT LS 按路径判断变化因此看不见改动。现在:
- settings 副本按内容哈希命名,放在会话 -data/.lithe/maven/ 内
- 新增 lsp.updateMavenConfiguration,设置变化发 didChangeConfiguration,
  重新加载发 java/projectConfigurationsUpdate,两个平台都不再重启会话
- profile 任务期间的配置变更会在完成后自动补跑
- Maven 工具窗口展示 pom.xml 解析错误并发可跳转通知,移除误导的
  “Maven configuration applied”

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

* fix(maven): preserve settings snapshots and queued JDT updates

Serialize settings preparation and publication, isolate staging files, retain snapshots until workspace cleanup, and create Unix copies with private permissions.

Apply newer profiles after failed or drained timed-out batches, retain pre-ready reload requests, and add regression tests. Update contracts, Agent Notes, feature matrix, and worktree resource exclusions.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix: 修复双端 HTML 浏览器打开与 Windows 更新状态 (#966) (#980)

* fix: correct HTML browser launch and Windows update state (#966)

* fix: address review findings on stale updates and missing HTML files

* docs(readme): 顶部嵌入宣传片,产品截图默认展示 4 张 (#983)

* docs(readme): 默认展示 4 张产品截图,其余折叠

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

* docs(readme): 在 README 顶部嵌入 Lithe 宣传片

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(editor): 统一双端文本判定并复用 Monaco properties 高亮 (#963) (#981)

* fix(editor): unify Unicode text classification and properties support (#963)

* test(editor): await original restore jobs in stale-result tests

* fix(ci): budget Swift lanes for linked Core cold builds

---------

Co-authored-by: dudylan <34180156+dudylan@users.noreply.github.com>
Co-authored-by: arkleselect <166632698+arkleselect@users.noreply.github.com>
Co-authored-by: Xiaoyumuxi <3075514079@qq.com>
Co-authored-by: JayF211 <57852791+JayF211@users.noreply.github.com>
Co-authored-by: Jay <jay@sztus.com>
Co-authored-by: Jay <fan_jie@sonadora.com.cn>
Co-authored-by: muchen <145200703+Mucheen@users.noreply.github.com>
Co-authored-by: xtr-hub <3786329580@qq.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants