Conversation
0.6.0 发布后开启下一开发周期。用 -dev 预发布后缀标记开发态、与正式版区分 (语义化版本合法,0.7.0-dev < 0.7.0 且 > 0.6.0,不影响更新检测)。同步 lockfile。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
发布流程记下:正式发版后 dev 切到下一版 `-dev` 预发布号标记开发态, 仅作开发标记不打 tag,发版时再改成目标号;说明其 semver 合法且不影响更新检测。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
对应里程碑 #6。三层切分:core 只声明业务契约(领域接口 + 各领域抽象基类 + 传输端口 + 可选 helper),连接 / 传输实现归各平台包自负;按 PR 操作 / 评论 / 用户媒体 / 连接拆分领域并组装到根 client;可降级方法就近声明、根聚合出对外能力 描述符。含代理配置统一进连接层、对外形状「内部分组 + 外部扁平」取舍与分阶段落地。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
重构 Phase 0。新增内部包 @meebox/platform-core,作为平台连接层的契约层: - 定义传输端口 PlatformTransport(get/post/put/del/paginate/getBinary 等 三平台同构的最小连接能力)与统一连接配置 PlatformConnectionConfig; - 连接配置统一携带 proxy,经注入的 ProxyFetchFactory 一次解析有效 fetch, 替代各调用点手拼,core 不依赖 undici; - 提供可选传输 helper(buildUrl / fetchWithTimeout / parseNextLink / collect / extractApiMessage / resolveConnectionFetch),供平台传输实现按需组合。 在 desktop 依赖与 electron-vite internalPackages 登记新包。暂未改动各平台 实现,行为零变化。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
重构 Phase 1(GitHub)。GitHubClient 改为 implements PlatformTransport,通用样板 (超时 / URL 拼接 / 错误消息提取 / Link 分页 / 有效 fetch 解析)复用 @meebox/platform-core helper;GitHub 特有部分(鉴权头 / 限流提示 / 可信资产域 / search / patch)保留。 GitHubClientOptions 改为统一连接配置别名。公开方法签名不变,GitHubAdapter 零改动, 适配器测试全过,行为等价。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
重构 Phase 1(GitLab + Bitbucket)。两平台 client 改为 implements PlatformTransport, 通用样板(超时 / URL 拼接 / 有效 fetch 解析;GitLab 另含错误消息提取 / Link 分页)复用 @meebox/platform-core helper;平台特有部分保留(GitLab:PRIVATE-TOKEN / 资产 host 鉴权 模式 / API 二进制端点;Bitbucket:start/limit 分页 / avatar 路径二进制 / 附件协议解析)。 ClientOptions 改为统一连接配置别名,公开方法签名不变、各 Adapter 零改动,适配器测试全过。 同时收敛传输端口:getBinary 从 PlatformTransport 移除——三平台二进制信任模型迥异 (Bitbucket 路径式 + 附件协议、GitHub/GitLab 各自白名单),不属同构最小连接能力,留作 平台传输扩展、由后续 MediaService 领域基类抽象。端口现为纯 JSON 读写 + 分页。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
重构 Phase 1(代理统一)。统一连接配置新增 proxyFetch 注入口(由组合根 desktop 提供 undici 实现);resolveConnectionFetch 据 config.proxy + baseUrl host 一次解析有效 fetch。 adapters.ts 不再在 buildOne / buildDraftAdapter 各自 proxyFetchForHost(proxy, host) 预拼 fetch 注入,改为透传 proxy 配置与工厂,由连接层解析——「一个连接 = 一份连接配置(含代理) = 一次解析」。行为等价(loopback 直连 / 否则挂代理不变),四步全绿。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
重构 Phase 2a(领域契约层)。在 platform-core 定义按业务领域拆分的接口 (PlatformConnection / PullRequestService / CommentService / MediaService)与领域服务 容器 PlatformAdapter;新增共享连接上下文 ConnectionContext(持统一连接封装实例 + 当前 用户缓存)与各领域抽象基类(BaseConnection 等,PlatformDomainService 向子类暴露 transport, BaseConnection 的用户缓存读写为跨平台共享实现);composePlatformAdapter 把四个领域服务组装 成根容器。纯新增、暂未接线,各平台与消费方零改动。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
把 domains.ts 拆分为可独立维护的文件:context.ts(ConnectionContext /
PlatformDomainService)、features/{connection,pull-request,comment,media}.ts(各领域
接口 + 基类)、adapter.ts(容器 + composePlatformAdapter)。index.ts 对外导出不变,
纯文件组织调整,避免单文件随基类共享逻辑增长而膨胀。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
将设置面板从单列平铺重构为左侧分区导航 + 右侧分区内容: - 按领域归类现有配置项(常规 / 连接 / AI / 关于),分区元数据驱动、为后续扩展预留 - 新增 Modal lg 尺寸(max-width 880px)+ 定高 720px,切换分区尺寸恒定、右侧内容区独立滚动 - 左侧导航与模态主体同色,仅以分隔线区分 - 四语言新增分区标签 i18n Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat(settings): 配置面板改为左右分区定高布局
重构 Phase 2b(GitHub)。把单体 GitHubAdapter 拆为四个领域服务(GitHubConnection / GitHubPullRequestService / GitHubCommentService / GitHubMediaService,各 extends platform-core 领域基类),共享一份连接上下文(MutableConnectionContext);GitHubAdapter 退化为薄门面,过渡期委托扁平方法给对应领域服务并暴露 .connection/.pulls/.comments/.media, 消费方迁移前保持可用。 - 连接配置归连接层自管:移除 env 间接层,client(统一连接封装实例)自管 base 归一、 clone 协议与 web/git host 派生,并提供 getCloneUrl;各服务只持 client。 - 映射就近维护:领域专属映射下沉为各服务私有方法,公共响应类型抽到 types.ts, 跨领域 mapUser 留在 mappers.ts。 公开方法签名不变、适配器测试全过、desktop typecheck 通过,行为等价。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
后台业务内部不再硬编码中文状态文案。platform-core 新增统一否决原因码 MergeVetoCode; MergeVeto 改用 code(中性、不本地化)承载派生原因,summary 退为服务端直给文案(如 Bitbucket)的可选回退。GitHub / GitLab 把派生的合并否决原因归一到码,前端在各 locale (zh-CN / en-US / ja-JP / de-DE)按 `mergeVeto.<code>` 本地化。GitHub 发往远端的评审 正文 / 撤销说明改用英语中性文案。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mappers.ts → utils.ts(承载跨领域公共工具方法 mapUser)。PR 领域内 review 决断态到活动 事件类型 / reviewer 状态的嵌套三元 / if-else 改为常量 Record 映射表(ACTIVITY_KIND_BY_STATE / REVIEWER_STATUS_BY_STATE),更易读、易维护。行为等价。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
重构 Phase 2c(GitLab)。把单体 GitLabAdapter 拆为四个领域服务(GitLabConnection / GitLabPullRequestService / GitLabCommentService / GitLabMediaService,各 extends platform-core 领域基类),共享一份连接上下文;GitLabAdapter 退化为薄门面,过渡期委托 扁平方法并暴露 .connection/.pulls/.comments/.media。 - 连接配置归连接层自管:client 自管 base 归一、clone 协议、web/git host 派生与 getCloneUrl;edition 探测态 approvalsAvailable 落在 client 上,供连接(capabilities) 与 PR(审批拉取)领域共读。 - 映射就近维护:领域专属映射下沉为各服务私有方法,公共响应类型抽到 types.ts, 跨领域 mapUser / projectId 放 utils.ts。 公开方法签名不变、适配器测试全过、desktop typecheck 通过,行为等价。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
为 platform-core / platform-github / platform-gitlab 的 features 领域层(连接 / PR / 评论 / 媒体)及 core 的连接上下文、组合器补全多行 JSDoc:每个领域接口、领域基类、平台 服务类及其方法(含私有映射方法)均给出必要的块注释,单行注释一并展开为多行块。纯注释 改动,无代码变更,四步全绿。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
重构 Phase 2c(Bitbucket)。把单体 BitbucketServerAdapter 拆为四个领域服务 (BitbucketServerConnection / BitbucketPullRequestService / BitbucketCommentService / BitbucketMediaService,各 extends platform-core 领域基类),共享一份连接上下文; BitbucketServerAdapter 退化为薄门面,过渡期委托扁平方法并暴露 .connection/.pulls/ .comments/.media。 - 连接配置归连接层自管:client 自管 clone 协议、webBase 与 getCloneUrl;各服务只持 client。 - 映射就近维护:领域专属映射下沉为各服务私有方法(版本比较、合并状态、评论 / 锚点映射等), 公共响应类型抽到 types.ts,跨领域 mapUser 放 utils.ts。 - review 决断态 / 活动 action 映射改常量表,方法补多行 JSDoc。 公开方法签名不变、适配器测试全过、desktop typecheck 通过,行为等价。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
为 platform-core 领域接口(PlatformConnection / PullRequestService / CommentService / MediaService)、连接上下文接口及各领域基类的方法 / 成员之间补必要空行,提升可读性。纯格式, 无代码与行为变更。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
重构 Phase 2d(消费方翻转)。业务层调用从扁平 adapter.method(...) 迁移到领域容器 adapter.<domain>.<method>(...):connection(ping / 当前用户 / 能力 / clone)、prs(PR 操作)、 comments(评论)、media(头像 / 附件)。涉及 pr.ts / poller / app & comments 服务 / pr-service / repo-mirror / connections-runtime / autopilot 等约 25 处调用点与 FakeAdapter 测试桩。 - 领域字段定名 `prs`(贴合应用「PR」术语,较 `pulls` 更清晰)。 - 退役过渡层:删除三个适配器门面的扁平委托方法、移除 @meebox/shared 的扁平 PlatformAdapter 接口;各适配器改为 implements @meebox/platform-core 的容器 PlatformAdapter。 - poller 依赖加 @meebox/platform-core;FakeAdapter 改为容器形态(仅实现所测领域)。 - 同步设计草案的字段命名。 公开行为不变,全部契约测试与 poller 测试通过,desktop typecheck/lint/build 全绿。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
清除后台最后一处中文状态文案。Bitbucket 连接探测对低于支持下限的版本不再返回中文 reason 字符串,改以错误码 CF_UNSUPPORTED_VERSION + meta(实际版本 / 最低要求)承载;连接测试结果 经 formatBackendError 解码、前端按 errors.ECF0001 本地化(zh-CN / en-US / ja-JP / de-DE, 带 version / min 插值)。后台业务内部不再含面向用户的中文文案。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
重构 Phase 3(收尾·文档)。arch/01 由旧的单一巨接口叙述更新为新架构:契约层 @meebox/platform-core(领域接口 + 领域基类 + 传输端口 PlatformTransport + 组合器)、 各平台实现层(统一连接封装实例 + 四领域服务)、根领域服务容器(connection / prs / comments / media);补能力描述符新增字段、合并否决中性码与连接错误码、按新结构的新增平台 步骤、代理统一进连接层。设计草案标记为已落地并归档,指向 arch/01。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
为 arch/01 §1 增补 mermaid 类图,归纳「领域接口 + 抽象基类」契约层与 GitHub / GitLab / Bitbucket 三平台扩展点(*Adapter 实现容器接口、*Client 实现传输端口)的继承 / 实现关系, 图说要点分条列出。 按本仓约定(过程性设计文档落地后移除、结论沉淀进各篇核心设计——参见 docs/adr 的处理) 删除 docs/design/platform-layer-refactor.md;arch/01 去掉对草案的链接,platform-core 注释(transport.ts / codes.ts)对草案章节的引用改指 arch/01 对应小节。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Unreleased 增 Changed 一条(按要点缩进):代码平台接入层基于领域设计重构(行为不变), 按四领域拆分、连接与代理配置统一收口、连接状态提示本地化。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
合并 dev(含 #122 配置面板左右分区布局),CHANGELOG 的 Unreleased 两条 Changed 并列保留。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
refactor(platform): 平台连接层按领域容器化重构(里程碑 #6)
为主题切换打基础,将散落的颜色配置归纳为标准色 + 视觉变体的三层结构: - _palette.scss:原始标准色(按色相 family 组织),唯一色值真相源 - _theme.scss:语义 → 标准色映射,发射为 :root CSS 自定义属性,运行期可整体换主题 - _tokens.scss:把语义 SCSS 变量桥接到对应 var(--token),各样式文件使用处零改动 使用处的 rgba($base, a) 半透明叠加改走 rgb(var(--rgb-base) / a) 通道变量。 暗色主题严格保持像素级一致(编译产物核对:语义值、通道三元组、:root 块均与重构前等价)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
新增主题偏好(跟随系统 / 浅色 / 深色),设置页常规分区即时切换、写盘持久化: - 复用三层 token 体系新增浅色配色([data-theme=light] 覆盖语义变量,VS Code Light+ 取色) - 偏好经 config.appearance.theme 驱动,渲染层解析为 data-theme,'跟随系统' 随 OS 实时切换 - localStorage 缓存首帧主题,避免浅色用户启动闪深色 - Monaco 编辑器与 Mermaid 图随主题在浅 / 深间同步,保持界面整体一致 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
设置页常规分区新增「编辑器」配置,两项均即时生效、写盘持久化: - 编辑器配色主题:可选跟随应用(默认)或 Monaco 内置主题(浅 / 深 / 高对比深 / 高对比浅) - 编辑器等宽字体:自定义字体族,同步覆盖编辑器内容与全应用等宽文本(diff / 评论 / 代码块) 渲染层经共享 store 把编辑器外观下发到 Monaco 组件,免逐层透传;字体经 CSS 变量驱动 $font-mono。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 编辑器配色主题增至 17 种:除内置(浅 / 深 / 高对比)外,内置 GitHub、Monokai、Dracula、Nord、Night Owl、Solarized 等常用主题(取色自 monaco-themes、就地内置) - 主题以专名展示、不做国际化翻译(与语言项 endonym 同理) - 新增编辑器字号配置(限合理范围 8~32px、默认 14),编辑器与行内代码片段一并生效 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 编辑器 / 缓存目录 / Agent 目录配置上方加分割线,与其他配置项分组 - 配置项上下间距加大;左侧分类导航字号 / 图标放大、图标与文案间距放宽;设置面板尺寸收窄 - 编辑器字体输入单独成行铺满(自由输入、可逗号分隔多字体,作 font-family 前缀拼到内置栈前) - 编辑器主题「跟随应用」项去括号注释并做本地化;其余主题名仍按专名不翻译 Co-Authored-By: Claude Opus 4.8 <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>
feat: 配置面板优化 — 评审参数/AI 拆分/Agent 策略,及主题·Diff·聊天打磨
GitHub octocat 原硬编码白色 fill,浅色主题白底上不可见。新增语义变量 --github-logo(暗色官方反白、浅色官方近黑),图标经 CSS fill 属性引用。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
语言 / GUI 主题 / 编辑器外观属即时生效项,与整体保存事务正交,从 useSettingsDraft 抽到独立 hook:后者回归纯草稿/整体保存职责,外观自带 error 由 SettingsModal 合并展示。行为不变。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
去掉独立的 GUI 主题项(system/light/dark),改由所选编辑器主题作为唯一 「主题」控制:主题反推浅/深写入 data-theme 驱动语义色板,并从主题色派生 整个 GUI chrome 的结构性配色(背景/前景/边框/选区,带对比度地板)。 - 主题选项加 mode 标注浅/深/auto;auto 跟随系统(深→Dark Modern、浅→ Light Modern),默认 auto - 原生窗口 themeSource 由主题反推;移除 appearance.theme 与 config:setTheme - 设置页「主题」分区改为全局主题选择器,编辑器分区只留字体/字号 - 保留浅/深语义色板(语义色仍随 data-theme 切换) - i18n 四语言同步 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat(settings): 编辑器主题升格为全局主题 + 主题化小改良
max_followup_asks 原错挂在 autopilot 下且 UI 未暴露;移到 agent.strategy (与 auto_followup 同组,作用于手动自动评审与 AutoPilot 共用的微流程), 并在策略分区新增「追问数量」下拉(1~5,自动追问关闭时禁用)。 - 消费处 flows/review.ts 改读 strategy.max_followup_asks - useSettingsDraft 接入草稿状态机,随 config:setAgent 一并保存 - i18n 四语言 + 配置参考/arch 文档同步(补全此前缺失的 agent.strategy 段) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat(settings): 自动追问数量开放为 agent 策略配置项
跟踪的 PR 在以下情况标未读圆点,打开即清除:新进入待审列表(新分配 / 请求评审)、源分支推新 commit、或有人 @你 / 回复你。 - poller 在 PR 内容变更时拉评论扫描「@我 / 回复我」,维护 lastMentionAt 游标;commit 未读由 head sha 比对在读取时派生,零额外 API。 - 已读水位独立成 read-state.json,仅 markRead(用户打开 PR)写,与 poll 周期性重写 index.json 解耦,避免覆盖竞态。 - 早期开发版不做升级兼容(未打开过即未读,不抑制旧存量泛红)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
markRead 此前用 setState 更新器的副作用判断「是否未读」来决定要不要发 IPC,但更新器在渲染阶段才执行、同步读其副作用恒为初值 → 提前 return → prs:markRead 从未发出、read-state 从未落盘,重启后又判为未读。改为选中即 发 IPC 持久化已读水位。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
原子写「tmp → rename」中,进程在两步之间被强杀 / 退出(如关窗瞬间仍有 in-flight 的异步窗口状态写)会留下 *.tmp 孤儿,跨会话持续累积。新增 sweepStaleTmpFiles,在启动早期、任何写入之前删掉全部 *.tmp——单写者前提下 此刻无 in-flight 写,凡 tmp 皆是上次会话孤儿;绝不在运行期清扫,以免误删 并发写 / rename 重试正在用的 tmp(冲突场景不误删多余文件)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat(pr): PR 列表未读标记 + 状态目录临时文件清理
本机 agentic CLI 模式下,编排自有步骤(路由/judge/summary)的 chat 通道 直接调本机 CLI、不再 import pr_agent / litellm。CLI 路径本就绕过 litellm, 无谓拉起整套 import 会给每次 chat 子进程白增数百 ms~1s+ 启动开销,而一个 编排流程要调多次。 - cli/install.py: 子进程逻辑抽成自包含的 run_cli_chat; _install_cli_chat_completion(服务 pr-agent 工具 run)改为薄包装委托它, 工具 run 路径零行为变化。 - chat.py: CLI 模式直接调 run_cli_chat 返回,跳过 pr_agent/litellm import; API 模式保持原 litellm 路径(litellm 即 HTTP 客户端、不可绕)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
perf(agent): CLI 模式编排 chat 通道短路绕过 litellm 启动开销
- CHANGELOG 的 Unreleased 改名为 [0.7.0-alpha.1] - 2026-06-26,另起空 Unreleased - apps/desktop 版本号 0.7.0-dev → 0.7.0-alpha.1,同步 lockfile 与 compare 链接 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
发布 0.7.0-alpha.1(预发布 / alpha)。从
dev汇入master,合并后在master打v0.7.0-alpha.1tag 触发 release.yml 出包。发版前置(已完成)
apps/desktop/package.json0.7.0-dev→0.7.0-alpha.1,已npm install同步 lockfileUnreleased改名为[0.7.0-alpha.1] - 2026-06-26,另起空Unreleased,补 compare 链接本版重点
/merge指令详见 CHANGELOG
[0.7.0-alpha.1]段。校对待办(合并前可选补充)
24e0ab8 reviewer 头像栈右侧展示「我的评审」头像与角标:属 0.6.0 头像栈特性的小增量,当前 CHANGELOG 未单列;如需收录可在合并前补一条 Added。🤖 Generated with Claude Code