Skip to content

feat: 配置面板优化 — 评审参数/AI 拆分/Agent 策略,及主题·Diff·聊天打磨#125

Merged
huhamhire merged 15 commits into
devfrom
feat/concurrency-context-settings
Jun 25, 2026
Merged

feat: 配置面板优化 — 评审参数/AI 拆分/Agent 策略,及主题·Diff·聊天打磨#125
huhamhire merged 15 commits into
devfrom
feat/concurrency-context-settings

Conversation

@huhamhire

Copy link
Copy Markdown
Owner

概述

围绕设置/配置面板的一轮集中改良,并顺带打磨主题、Diff、聊天与 PR 头部体验。共 15 个提交,目标分支 dev

主要改动

设置 / AI 配置

  • 评审任务并发LLM 上下文长度:设置页可调(复用离散档位拖拽组件),并发热生效、上下文透传 pr-agent。
  • AI 配置拆分为「模型 / 智能体」两个分区:模型只留 LLM 连接 + 上下文长度,其余归智能体。
  • Agent 策略(智能体下的功能列表):
    • 自动追问开关:关闭则评审直接总结、不再条件追问,省 token。
    • 代码建议数量(2~8 下拉):统一约束 /review·/improve(硬)与 /ask(软)。
  • 文案:Agent 目录 → 记忆目录、Agent 策略 → 策略。
  • 修复:设置保存后回读同步 boot.config,再次打开设置页不再显示旧值。

主题 / 外观

  • 原生窗控按钮区与启动闪屏跟随浅/深色主题(不再写死深色)。
  • 色板按来源系列(vscode / tw / material)重组收敛,主题 fade 全量从原色派生。
  • 浅色模式配色打磨:选中态白字反色、图标 hover、类型胶囊、状态栏胶囊。

Diff / PR

  • 并排 diff 在窄宽降级为统一布局时,总览标尺正确区分红/绿。
  • 操作 toast 从底部移到顶部,避免与底部状态栏/横向滚动条叠压。
  • reviewer 头像栈右侧新增「我的评审」头像与角标。

聊天(ChatPane)

  • 提问引用的代码在气泡下方折叠附带显示;思考过程支持 markdown 预格式化排版。
  • 新增 /merge 指令(满足条件可在对话中合并,弹二次确认)。
  • 输入框最大高度提升到 8 行;确认框忽略自动重复按键(修 /merge 弹窗被 Enter 连击秒确认)。

窗口

  • 记住窗口尺寸 / 最大化;默认尺寸按当前显示器工作区自适应(修高 DPI 缩放超屏)。

CHANGELOG 已在 ## [Unreleased] 同步登记。

🤖 Generated with Claude Code

huhamhire and others added 15 commits June 25, 2026 10:41
在设置页「AI」分区新增两项配置,复用轮询的离散档位拖拽组件(抽出 TierSlider 复用):

- 评审任务并发(pr_agent.max_concurrency,1~8):新增 config:setMaxConcurrency
  通道,写盘后热替换 run 队列上限,无需重启。
- LLM 上下文长度(llm.context_tokens,32k~1M,默认 128000):接线到 pr-agent
  env,替代此前硬编码的 CONFIG__MAX_MODEL_TOKENS=128000;本地 CLI 模式忽略该
  设置(保留默认值)。经 buildToolEnv / buildChatEnv 透传,评审与编排均生效。

同步:四语言 i18n、草稿保存接线(修正 profile 编辑丢失 context_tokens)、
onboarding 兜底补字段、使用文档与 CHANGELOG。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
并排是用户意向,Monaco 在宽度不足时会自动降级为 inline/统一布局(prop 仍为
并排)。此前按 prop 把删除红标画到左侧 original 编辑器,降级后 original 不可见
→ 红标全丢、滚动条只剩新增绿色。

改为按实际渲染模式判定:读 Monaco 反映实际模式的 .monaco-diff-editor 根节点
side-by-side class,降级时把红标改画到可见的 modified 编辑器左道;并监听布局
变化(rAF 合并、待 class 稳定后再读),跨断点切换时实时重画。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 最大化此前未可靠落盘:只走 resize 防抖,最大化后随手关窗常在防抖前退出、关窗的
  异步写又被进程退出打断 → 状态丢失。改为最大化/还原即时回写,关窗走同步写兜底;
  下次启动恢复最大化态。
- 默认 1280×800 与最小 960×600 为 DIP,高 DPI 缩放后工作区可能更小,窗口被撑到
  最小值溢出屏幕。改为把期望尺寸 clamp 进当前显示器工作区、据此压低最小尺寸并居中。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- palette 改按来源系列命名($vscode-* / $tw-* / $material-*),让混源显式:
  vscode 系=编辑器 chrome/中性/accent/git 装饰,tw 系=通用语义状态,material 系=
  目录树文件状态图标(单独保留)。git 装饰、树图标、品牌 logo 为 carve-out,不收敛。
- 系列内收敛:删冗余近似色(#707070→gray-500、$gray-0→$white)与 off-palette 一次性
  色(pending→tw-amber、posted/success→tw-green)。
- 主题层 34 处手抄 rgba 改为从 palette 原色派生 #{rgba($var,a)},恢复单一真相源
  (改原色浅底自动跟随),顺带修正 git-added-bg 的 199→201 漂移。
- _tokens.scss 桥接层与使用处零改动;仅 success/pending/posted 等极少数浅底有可感
  知微调,余皆像素一致。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
全局操作 toast(审批/合并/发布等失败提示)改为顶部居中,滑入方向同步翻转为
自上方滑入。原底部位置在 diff 视图下会与状态栏/横向滚动条叠压。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 提问引用:AgentMessage 新增持久化 referencedContext,带 Diff 选区提问时在用户气泡
  下方折叠展示「引用的代码」;optimistic 回显同步携带(中途输入入队路径不带,避免重载
  闪烁)。评论建议(finding)引用沿用 /ask 复评卡片上的定位徽标。
- 思考过程:思考 / 判读正文改走 markdown 渲染,支持代码块 / 列表 / 换行等预格式化排版。
- /merge:新增 pr-action 类指令,复用 prs:merge(与 PR 头部合并按钮同源)。仅
  mergeStatus.canMerge 时在补全 / 命令菜单出现,触发后弹二次确认才实际合并。
- 四语言 i18n 补齐对应文案。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ConfirmModal 由「按 Enter」打开时(如 chat /merge 提交),按住 Enter 的 OS 自动
重复 keydown 会在监听器挂载后触发 Enter→确认,模态一闪而过、操作被秒确认。改为忽略
repeat 事件,仅响应全新按下;点击 / 重新按 Enter 仍正常确认。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
此前主进程把原生 chrome 写死深色:nativeTheme 强制 dark、Windows titleBarOverlay
与 splash 均硬编码 #1e1e1e,浅色主题下右上角窗控按钮区与启动闪屏仍是深色。

- nativeTheme.themeSource 改为跟随 appearance.theme(system/light/dark),原生细边框
  与窗控深浅随之,system 跟随 OS。
- titleBarOverlay 按有效主题取明/暗两套配色,并监听 nativeTheme 'updated' 在主题切换 /
  系统深浅变化时实时 setTitleBarOverlay(关窗注销;macOS 不涉及)。
- config:setTheme 同步 nativeTheme.themeSource,切主题即时联动原生件。
- splash 按有效主题渲染明/暗配色。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
修复浅色主题下几处沿用暗色假设、未适配浅背景的配色:

- 目录树选中项文件名白字反色:新增主题感知 token --text-on-selected(暗底白、浅底深字),
  替代选中态写死的 text-on-accent(深浅皆白);scope 下拉选中项同修。
- 图标按钮 hover 写死白:改用 --text-primary,浅色下不再让图标消失在浅底 hover 上。
- 类型胶囊(PR Type)暗色写死:pillStyle 只注入 --pill-hue,明/暗两套饱和度与明度交由
  CSS 按主题定,浅色下改浅底深字,不再过深。
- 状态栏未启用胶囊用边框级灰作填充偏深:新增 --chip-neutral(浅色用更浅 #e0e0e0)。

目录树状态点维持鲜明 Material 饱和色(小圆点更醒目),不变。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- config 新增 agent.strategy 行为开关组(扩展位),首项 auto_followup(默认开)。
- 设置页「AI」分区新增「Agent 策略」section,子项以功能列表呈现(左标题+说明、右侧
  Switch);新增通用 Switch 组件。
- 关闭「自动追问」时评审微流程剔除 judge + asks 两步、直接总结,省一次 judge 调用与
  潜在追问(省 token);手动评审与 AutoPilot 两条路径均生效。
- 保存复用 config:setAgent。
- 顺手清理 review 流程里残留的「PR3:」临时任务标记注释。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- AI 分区拆为「模型」(仅 LLM 连接 + 上下文长度,新增 CpuIcon 图标)与「智能体」
  (记忆目录 + 策略 + 评审并发)两个左栏 tab。
- 文案:Agent 目录 → 记忆目录、Agent 策略 → 策略、策略说明去掉「开关」字样;分区键
  catAi 拆为 catModel / catAgent(四语言)。
- 策略子项列表通用化为 .settings-sublist-*(缩进 + 行首圆点体现从属),右侧控件不限于
  开关,便于后续放下拉 / 滑块等。
- TierSlider 右侧读数 formatValue 改为可选:纯数字无单位(评审并发)且与刻度重复时隐藏。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
拖拽上限与 CSS max-height 由 5 行调到 8 行,超出走输入框内部滚动;拖拽提示文案同步
四语言改为「2-8 行」。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
agent(含自动追问)/ poller / 并发 / 仓库目录等无即时回调的设置项写盘后,渲染层缓存的
boot.config 未同步,再次打开设置页仍读旧值(行为已生效但 UI 陈旧),需整段 boot 重载才更新。
saveAll 成功后回读写盘后的权威 config(含 main 端 clamp)经 onConfigPersisted 同步到
boot.config,一处通用修复覆盖所有无即时回调项。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
config 新增 agent.strategy.max_code_suggestions(2~8,默认 4),一个配置项约束三处:
- /review → PR_REVIEWER__NUM_MAX_FINDINGS(硬上限)
- /improve → PR_CODE_SUGGESTIONS__NUM_CODE_SUGGESTIONS(硬上限)
- /ask → 结构化 <suggestions> 提示层软约束(封顶超量代码建议)

「策略」分区新增下拉行(复用通用 .settings-sublist-*,控件为 select,印证子项控件不限于
开关);下拉宽度对齐其他主配置下拉、纯数值右对齐。四语言 i18n。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
reviewer 头像栈此前过滤掉当前用户;现在在他人头像栈右侧(细分隔线 + 间距、不重叠)加上当前
用户自己的头像 + 评审角标。角标状态取本地决断 pr.localStatus(审批按钮即时更新),approve 绿勾 /
needsWork 琥珀叹号 / 待评审无角标;头像复用其 reviewer 条目,自己作者的 PR 不展示。
抽出 StackAvatar 供栈内项与「我」项共用,hover 出「我的评审 · 名字」(四语言)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@huhamhire huhamhire added this to the 配置面板优化 milestone Jun 25, 2026
@huhamhire huhamhire added enhancement New feature or request refactor 代码重构(不改运行行为) labels Jun 25, 2026
@huhamhire huhamhire merged commit 149e3bd into dev Jun 25, 2026
1 check passed
@huhamhire huhamhire deleted the feat/concurrency-context-settings branch June 25, 2026 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request refactor 代码重构(不改运行行为)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant