Skip to content

fix(macos): 收紧 Agent 配置菜单并修复双行说明裁剪 - #1023

Open
Mucheen wants to merge 2 commits into
1lck:previewfrom
Mucheen:fix/agent-selector-labels
Open

Mucheen wants to merge 2 commits into
1lck:previewfrom
Mucheen:fix/agent-selector-labels

Conversation

@Mucheen

@Mucheen Mucheen commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

模型及权限菜单的行距过大;压缩权限行后,如果说明占两行,按最小行高计算的面板又会截掉短列表底部。本 PR 收紧菜单间距,并让权限面板容纳实际文字高度。

改动内容

  • 模型和设置子选项最小行高由 32pt 收紧到 26pt,权限模式最小行高由 64pt 收紧到 44pt;共用行上下内边距由 8pt 调整到 4pt,权限标题与说明间距由 3pt 调整到 2pt。
  • 模型和设置子菜单使用新行高计算面板高度,保留分组、搜索、选中背景及勾选。权限说明继续允许两行,行内容可自然增高。
  • 权限面板根据实际内容高度调整,最高仍为 330pt。短列表完整容纳双行说明,长列表继续滚动。测量值在最大可视高度处截断,仅更新弹出面板的局部状态并过滤微小差异,避免滚动长列表时反复调整面板大小。
  • 新增两项真实 SwiftUI/AppKit 渲染回归,覆盖深浅主题下的中文双行说明、短列表完整显示、模型/权限长列表滚动到末项,以及原生鼠标选择后保留上游 ID。权限面板与模型面板采用一致的内部视图可见性,测试直接承载实际视图,不暴露私有状态。
  • 同步更新 Agent Note、功能矩阵 JSON 和生成的 Markdown/CSV;没有新增运行时资源、下载、缓存、依赖或安装目录写入。

与 #1008 的分工

按 本 PR 的 review 拆开呈现策略和布局。本 PR 已移除权限名称规则及对应文档改动;PR #1008 统一 model / mode / thought_level 的上游名称、权限图标和本地化说明。

最终中文界面采用英文选项名称、中文说明及通用标题;同一组名称和菜单/底栏保持一致,Plan 不会单独变成“计划”。建议先审查并合并 #1008,再同步本 PR 的基线并重新生成矩阵。本地已试合并:源码、Note 和 JSON 自动合并,只有生成的 Markdown/CSV 需要重新生成。两份 PR 均等待审查。

验证

  • 本 PR 独立分支:86 项 Agent 回归通过(85 项计时条目,其中一项参数化测试含两个用例),无超时、停滞或性能警告;两项新增布局测试分别 32ms、64ms。
  • 两份 PR 的本地组合:89 项 Agent 回归通过,5 项新增测试最长 77ms;macOS debug 构建通过。
  • 实际渲染截图已检查:深浅主题下两行说明完整显示;30 项模型及权限列表均能滚动到底并选择 choice-29。测试窗口和进程已退出,没有启动额外 Lithe 应用。
  • HTML/JUnit:.artifacts/test-stability/pr1023-review-macos.html、pr1023-review-macos.junit.xml;组合报告为 pr1008-1023-combined-macos.html / .junit.xml。
  • Agent Notes、测试稳定性、平台矩阵及实际 base/head 变更门禁、runtime bundle 只读、Windows 边界、中英文 strings 语法、diff 空白检查通过。
  • 全仓服务边界仍在 preview 已有的 AppModel+RunConfiguration.swift 616 行超过 600 行处失败;本 PR 未修改该文件。Windows Agent UI 尚未实现,矩阵保留 pending,没有进行 Windows 实机 UI 验收。
./.agents/skills/write-stable-tests/scripts/test-stability-macos.sh \
  --report .artifacts/test-stability/pr1023-review-macos.json -- \
  --filter 'AgentConversation|AgentSessionSelector|AgentHistory|AgentFileReference|AgentProviderConfiguration|AgentBrandIconResource|AgentManagement'
./scripts/build-macos.sh --configuration debug --triple arm64-apple-macosx
./scripts/verify-platform-feature-matrix-change.sh afb7a76649e4707db2455ff62b0f9b71c8247aa4 HEAD
./scripts/verify-platform-feature-matrix.sh
./scripts/verify-agent-notes.sh
./scripts/verify-runtime-bundle-immutability.sh
./scripts/verify-windows-boundaries.sh

Windows CI review 的处理

旧提交的 失败运行 首次在子模块发布检查处超时,清理缓存后的重试又耗尽共享套件预算,后续 host 测试跳过。不能把重试预算耗尽算成另一个用例自身失败,也不能仅凭一次失败认定为 flaky。

Rust Core 与 preview 的树哈希相同,Windows 工作流和计时工具也未变。对照 #1007 的成功运行,同一测试以 8555ms 通过;此次更新后的 #1008 Windows Rust CI 也完整通过,原失败测试为 7512ms,共享 Core 记录 779 项,Windows host 后续阶段全部运行完成。

本 PR 新提交 af2ca0ec 的 Windows CI 已通过,共享 Rust Core 与后续 Windows host 阶段均完成。部分 macOS 检查仍在运行。没有通过加大超时、删除测试或修改无关 CI 代码规避失败。

@ghfind-review ghfind-review Bot added the review: medium ghfind author score; see https://ghfind.com label Oct 1, 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|代码初审

结论:未发现需要阻塞合并的问题。紧凑布局的方向合理,但合入前需要协调与 #1008 的权限名称策略。
范围:preview afb7a76 → bf56797;5 个文件,实际逻辑改动集中在 AgentSessionSelectors.swift。

Scope Check
这次缩小模型/权限菜单的行高和留白,并让 mode、model 名称保留上游文字,避免中文界面只把 Plan 翻成“计划”。已追踪配置解析、Composer、Selectors 和选项回调;没有改变权限 ID、选项顺序或 ACP 确认行为,展示层边界合理。

Suggestions

  1. 请与 #1008 协调同一处 choiceTitle 的策略:#1008 希望权限名称中文化,本 PR 希望 mode 保留原文,两者目标相反。#1008 另有 thought_level 保持英文的规则,当前 PR 不包含。建议将紧凑布局与名称策略分开处理,明确最终选择后同步 Note 和矩阵,避免解决冲突时覆盖另一边意图。这是跨 PR 的需求取舍,不作为本 PR 的 P1 缺陷。
  2. 建议补中文环境下 Plan 菜单/底栏一致、双行说明和长列表滚动的回归覆盖,尤其是整合 #1008 后。现有展示测试未专门覆盖这些边界。

Verification
macOS、Agent Notes、平台矩阵、macOS Plugin、Database 检查通过。Windows 前端通过,但 shared Rust 的首轮测试计时及清理后重试的整套预算耗尽,host 阶段跳过,整体 Windows CI 未通过。失败位置在共享 Rust 测试,并非本次 Swift 代码的编译错误;目前不能据此确定为偶发失败。
作者提供了相关回归和中文 UI 验收记录;本次仅静态审查及读取已有 CI,未重新运行测试或启动应用。
失败任务:https://github.com/1lck/Lithe-IDEA/actions/runs/36882847664/job/110439181492

@Mucheen Mucheen changed the title fix(macos): 收紧 Agent 配置菜单并保留权限原文 fix(macos): 收紧 Agent 配置菜单并修复双行说明裁剪 Oct 2, 2026
@Mucheen

Mucheen commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator Author

已按 这条 review 调整并更新两份 PR:#1008 为 f7225991,#1023 为 af2ca0ec。

  1. 拆开名称策略和布局。 统一 Agent 权限及思考强度的上游名称与图标 #1008 负责名称、权限图标和说明:model、mode、thought_level 的选项保留上游名称,菜单、当前值及底栏共用规则;保留其他界面的通用 Plan → “计划”翻译,但 Agent 名称绕过全局翻译表。Claude 的 Manual / Accept edits / Plan / Auto / Bypass permissions 不会再只有 Plan 被翻译。中文界面最终采用英文选项名、中文说明及通用标题,同一组名称保持一致。fix(macos): 收紧 Agent 配置菜单并修复双行说明裁剪 #1023 已移除名称规则及对应文档修改,只负责布局,不会覆盖 统一 Agent 权限及思考强度的上游名称与图标 #1008 的思考强度规则。权限 ID、选项数量、顺序和 ACP 确认流程保持不变。

  2. 保留紧凑布局,并修复双行说明边界。 模型/设置选项最小行高为 26pt,权限模式为 44pt,行上下内边距为 4pt,标题与说明间距为 2pt。回归验证发现:说明占两行时,行会自然增高,仅按 44pt 计算面板会截掉短列表底部。现在权限面板跟随实际内容高度调整,最高仍为 330pt;测量在最大可视高度处截断,只更新局部状态,长列表继续滚动。

  3. 补齐回归与文档。 新增三项显式加载中文/英文资源 Bundle 的名称测试,覆盖 Plan 菜单/底栏一致性、模型与思考强度名称,以及其他配置继续本地化;新增两项实际 SwiftUI/AppKit 渲染测试,覆盖深浅主题、中文双行说明、短列表完整显示、30 项模型/权限列表滚动到底并选择末项原始 ID。统一 Agent 权限及思考强度的上游名称与图标 #1008 独立运行 87 项、fix(macos): 收紧 Agent 配置菜单并修复双行说明裁剪 #1023 独立运行 86 项、两份组合 89 项回归均通过;组合构建通过,5 项新增测试最长 77ms。Note、JSON 矩阵及生成视图已同步,权限呈现策略变化后的完整运行时验收状态保留 pending。

  4. 同步 preview 并核对合并结果。 两份 PR 已基于 afb7a766,统一 Agent 权限及思考强度的上游名称与图标 #1008 的 GitHub base SHA 也已刷新,审查差异分别为 8 个和 6 个文件。本地试合并时源码、Note 和 JSON 自动合并,生成的 Markdown/CSV 冲突通过从 JSON 重新生成解决;矩阵及实际 base/head 变更门禁通过。

  5. 重新核对 Windows CI,没有放宽测试预算。 旧运行中的首轮单测试超时与清缓存重试后的套件预算耗尽分别记录,没有直接认定为 flaky,也没有增加超时、删除测试或修改无关 Rust/CI 代码。当前 #1008 Windows CI 和 #1023 Windows CI 均已通过,共享 Core 和后续 Windows host 阶段完成;原失败的子模块发布测试在 统一 Agent 权限及思考强度的上游名称与图标 #1008 新运行中以 7512ms 通过。部分 macOS 检查仍在运行,尚未宣称全部 CI 完成。

建议先审查并合并 #1008,再同步 #1023 的基线并重新生成矩阵。两份 PR 继续等待审查,本次没有合并。全仓服务边界检查中 preview 已有的 AppModel+RunConfiguration.swift 616 行超限,以及 Windows Agent UI 尚未实现的限制,已在 PR 描述中注明。

@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|拆分后复核

结论:本次限定复查未发现需要阻塞合并的问题。此前指出的源码策略覆盖、回归覆盖缺口及旧 HEAD 的 CI 失败,已在当前版本得到处理。
范围:#1008 f722599、#1023 af2ca0e,相对共同基线 afb7a76。

Scope Check

  1. #1023 已移除名称策略,由 #1008 统一负责名称、图标和说明。对固定版本的 AgentSessionSelectors.swift 做只读三方文本核对后,两边源码改动可同时保留,不会再覆盖 thought_level 规则;这不是一次完整组合构建验证。
  2. 已补中文/英文名称回归,以及双行说明、长列表滚动和末项原始 ID 的实际渲染回归。权限面板按内容高度调整并保留上限,测量仅更新局部状态,避免只按最小行高计算而截断双行说明。

Verification
当前两份 PR 各六项 CI 工作流均成功。新增三项名称测试、两项布局测试在 CI 日志中均有通过记录,Windows Core 和后续 host 阶段也已完成。
名称测试:https://github.com/1lck/Lithe-IDEA/actions/runs/36944552895/job/110643582842
布局测试:https://github.com/1lck/Lithe-IDEA/actions/runs/36945556778/job/110646823241

当前方案是保留上游选项名称、说明按界面语言显示。技术上拆分已落实;最终文案策略及合入顺序仍待确认,完整 Agent 运行时验收继续保留 pending。后续整合时请基于最终提交重新生成矩阵并复核检查。

本次仅静态源码、测试代码及既有 CI 复查,没有启动应用或重新执行测试;作者的本地组合回归和构建结果未由本轮重跑。

This branch has not been deployed

No deployments
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