Releases
v0.12.2
Compare
Sorry, something went wrong.
No results found
Bruce 0.12.2 发布说明
新功能 (Added)
Windows 端 Claude 凭据零配置跟随本机 CLI 登录态 (C075) :对齐 mac 的 cc-switch 式跟随范式,Windows 不再强制手工粘贴 —— 启用 Claude 订阅后自动只读跟随本机 %USERPROFILE%\.claude\.credentials.json(缺失时回退 %USERPROFILE%\.claude.json),规范化后注入 claudeQuotaAccounts 的 claude-cli 账号(用户已存自有账号时手工配置优先);设置中心「订阅额度」新增「Claude 本机登录态」卡,显示已跟随 / 未发现 / 已过期,并提供「立即检测」与「读取本机登录态」(显式持久化为账号凭证)。仅只读、不回写外部文件,文件缺失或格式非法时静默回落,粘贴入口保留作多账号兜底。
Windows 端 Nothing 点阵主题 1:1 深度对齐 (C066) :
内置官方授权 Doto / Space 矢量字体族 :引入开源 SIL OFL 授权的 Doto[ROND,wght].ttf、SpaceGrotesk[wght].ttf 与 SpaceMono 系列字体,通过 @font-face 注册。彻底告别通用字体与 CSS 粗糙径向渐变伪点阵,还原与 macOS 1:1 等价的纯正 N-Dot 工业点阵质感。
OLED 纯黑纯平面几何基座 :Nothing 模式下锁定为 10px 紧凑圆角、#000000 纯黑底色与 1px #222222 细边框,彻底关闭毛玻璃模糊与阴影;内部卡片与槽位统一为 3px 硬朗方角。
逐像素对齐视觉组件 :
Hero 数字与呼吸微光晕 :Doto 52pt 翠绿 (#4A9E5C) 主数值,带呼吸微光晕;小数点提纯为 4×4px 实心小方块,与整数和小数部分平滑对齐;
LIVE 方块指示灯 :重塑为 5×5px 纯色实心方块,移除 Fluent 光晕呼吸环;
订阅卡三档阈值图例 :底部新增 <50(绿)/ 50–79(黄)/ ≥80(红)方块阈值图例;
Agent 展开区点阵控制台 :多模型占比采用 P4 方案(Top 1 翡翠绿,次要模型 45° 斜点阵条);项目分布深度对齐 PRJ.CONSOLE 终端控制台([P1] 标签、点阵导引虚线、数值、百分比 Badge 与 6-Tick 微型液晶进度格);
T07 工作台 Nothing 风格化 :全景工作台(KPI 磁贴、时序分析图、归一化大盘、Agent 透视矩阵)在 Nothing 下自动切换为纯黑表面、单色翠绿折线与 Space Mono 字体。
Windows 端视觉重塑与 T07 Agent 用量全景工作台深度对齐 (T08) :
窗口底座透明化与悬浮质感 :tauri.conf.json 配置 transparent: true,#panel 注入 16px 平滑连续圆角、0 24px 64px 弥散环境阴影与 1px 微发光边框,配合毛玻璃滤镜彻底消除黑灰直角方块感。
Catmull-Rom 三阶平滑曲线走势图 :app.js 引入 catmullRomToBezier 平滑样条插值算法与渐变面积填充,终结生硬锯齿折线,对齐 macOS Swift Charts 工业级视觉质感;进度条全面升级为微圆角胶囊条与状态光晕。
设置中心 T07 Agent 用量数据分析工作台深度移植 :完整移植 4 格核心 KPI 磁贴(总 Token / 折算费用 / Cache 命中率 / 活跃 Agent)、5 档时间跨度选择器(今日/近7天/近30天/本月/全部历史)、多维度时序折线分析、全域模型智能归一化大盘(剥离渠道前缀与版本修剪,保留底层渠道树下钻)、多 Agent 协同透视矩阵与 Token 构成四象限,保留底层会话探针与授权。
Fluent 2 现代药丸滑动开关 :全面替换原生粗糙的 HTML input[type=checkbox],重构为具备流畅滑动微动效的 Fluent 2 Toggle Switch 胶囊开关,完美兼容现有自动化测试接口与 Nothing 主题。
设置中心 Agent 用量深度分析与多模型跨源归并工作台 (T07) :
多源异构模型智能归一化 (ModelNormalizer) :剥离渠道前缀(cline-pass/、zhipu/、openrouter/ 等)与版本变体修剪(-20250219、[thinking] 等),将跨 Agent、跨渠道的碎片化模型名称自动聚合成官方主模型规范大盘(如将多渠道 glm-5.3 或 cline-pass/deepseek-v4.1-flash 收敛合并),保留来源渠道贡献树(Sources Contribution)下钻能力,自动继承内置 43+ 款主流基准单价与用户自定义单价覆盖。
Swift Charts 原生时序折线分析 (TimelineChartCard) :支持 Catmull-Rom 平滑曲线与堆叠面积图;支持按 Agent、按主模型、按 Token 构成、按费用 4 维切换;提供 MA7 均线与 Crosshair 悬停探针。
全景数据分析组件矩阵 :实现 CanonicalModelAnalyticsCard(模型份额与渠道下钻)、AgentComparisonMatrixCard(多 Agent 贡献矩阵与 Top 3 代码仓分布)与 TokenCompositionCard(输入/输出/缓存四象限与 Prompt Caching 节省金额分析)。
电脑锁屏后禁止订阅刷新 (C064) :在设置中心新增「锁屏暂停订阅刷新」开关(持久化至 OnboardingConfiguration.pauseSubscriptionRefreshOnScreenLock,默认开启)。当开关开启且系统处于锁屏状态时,定时刷新自动降级为纯本地扫描(localUsageOnly,includeExternalQuotas=false),杜绝人离开电脑时的无意义云端订阅配额消耗与 429 限流风险;当屏幕解锁后,若订阅额度已陈旧或已到期,立即补偿触发一次全量刷新,实现无缝衔接。
调整与优化 (Changed)
Windows 看板顶部彻底零输出 (C080) :继 C079 撤除状态行与诊断行的内容之后,本次连承载元素 #dashboard-status 一并移除 —— 看板顶部除 HUD 状态牌(SYS.OK / 刷新中 / 部分失败 / 数据过期)外不再存在任何能显示文字的节点,与 macOS 结构一致。
定向刷新被后端拒绝时改为静默 :与 mac RefreshScheduler.refreshSubscription 一致(mac 在拒绝条件下直接 return,无任何用户提示,靠按钮禁用态预防),可见反馈仅为按钮恢复可点;原先的状态行文案与 SCOPED_REFRESH_ERRORS 映射表一并删除。
面板无法渲染 / IPC 失败等致命错误只把状态牌标为「失败」,详情输出到浏览器控制台,不再往顶部写任何文案。
影响:若你依赖「定向刷新被拒时看板顶部出现中文提示」,该提示已按 mac 口径移除;如需保留,应改为在订阅卡内部呈现(与 mac 的 provider note 同位置)。
Windows 看板顶部撤除运行态状态行与诊断行,完全对齐 macOS (C079) :看板顶部此前会打印运行态详情(错误文案、上次成功时间、空数据提示)与服务级诊断行。现顶部除 HUD 头(状态牌 + Agent 计数)外不再有任何文字行,与 macOS 一致。信息不丢:服务级失败(含「需要重新授权」)改在订阅卡内部 呈现(与 mac 同位置),整体采集错误在设置窗口,Agent 探针在设置中心。HUD 状态牌(SYS.OK / 刷新中 / 部分失败 / 数据过期)按原设计保留。
说明:同一元素 #dashboard-status 仍保留给两个事件驱动场景 —— 定向刷新被后端拒绝时的可读提示,以及面板无法渲染时的致命错误提示;常规态该行不存在(:empty 隐藏),故不影响「顶部只有 HUD 头」的观感。
修复 (Fixed)
Windows 看板顶部不再直出诊断码,诊断行只留需用户动作的故障 (C078) :看板状态行此前把内部诊断码原样打印给用户 —— 其中 SNAPSHOT_RESTORED 是每次正常启动都会写入的码,而「上次成功」时间是持久化的,导致冷启动到首次刷新之间面板顶部恒定挂着 SNAPSHOT_RESTORED · 上次成功 2026-…Z;同一行还直出 ISO 原文。现诊断码一律映射为中文文案(如 COLLECTION_PARTIAL → 「部分订阅查询失败」),正常重启类码不再进入用户可见文案,「上次成功」改为本地可读时间。同时诊断行的过滤条件从「任何 error 级服务问题」收紧为「需用户动作的严重故障」(认证 / 权限 / 凭证缺失类)—— 一次「临时不可用」或限流不再与「需要重新授权」同等占据看板顶部,这些一次性失败仍保留在订阅卡内部与设置页。HUD 状态牌(SYS.OK / 刷新中 / 部分失败 / 数据过期)按原设计保留。
Windows 订阅额度改为按 provider 独立门控并补齐 429 冷却 (C077) :此前每轮刷新都把全部已启用 provider 的凭据连同额度查询一并下发,一个 provider 被限流会把整轮刷新拖入 300s 固定退避。现按 quotaAttemptedAt(回退 capturedAt)新鲜度与 rateLimitedAt 30 分钟冷却逐 provider 独立门控:仍新鲜的 provider 跳过查询、命中 429 的 provider 单独进入冷却(其余照常查询),被跳过的 provider 用上一份结果回填并标过期,不丢卡片也不误报新鲜;窗口重置后即使未满间隔也强制重查;手动刷新绕过新鲜度与冷却。Codex 不受门禁影响(其四源合并需要完整首轮结果)。
Windows 刷新调度接入网络可达性闸门 (C076) :此前断网时仍按指数/限流退避反复重试,既空耗 CPU 又会在恢复瞬间叠加一串补偿请求。现自动刷新前置连通性探测(Windows InternetGetConnectedState):离线时跳过本轮、不累加重试次数、不进入退避,只按 30s 周期重探并把运行态标为「网络不可用」;网络恢复后只补偿一次刷新,不补发离线期间积压的多轮;手动刷新语义不变(离线仍执行一次、不重试)。
价卡表补 deepseek-flash 条目,消除工作台未定价模型 (C073) :zcode 等直连官方 API 的历史 deepseek-flash 命名(无任何既有价卡键为其前缀)此前落入「未定价 tokens」;现按官方 V4 Flash 同档(输入 $0.15 / 输出 $0.60 / 缓存读 $0.003 每 1M)独立建卡,不跨档并入 ClinePass 的 v4.1 档,双端共用。
修复升级后 Agent 用量工作台近 7/30 天模型明细只剩当天 (C072) :C070 为增量缓存新增逐日/逐小时模型明细桶时,SQLite 缓存条目未纳入聚合格式版本身份,升级后旧格式条目(无日/时明细)被当作合法基数增量追加,历史逐日模型明细永久缺失——月度视图 44.9 亿而「近七天」只显示当天(约 8.7M)。现缓存身份强制比对聚合格式版本,旧条目自动回退全量重建,升级后首次采集即恢复全部明细(一次性全量重扫)。mac 与 Windows 共用同一采集内核,同步生效。
修复锁屏后订阅用量卡片消失 (C071) :锁屏期间自动刷新被 C064 抑制为纯本地扫描时,发布的 artifact 携带零 services,仪表盘订阅卡整体消失且因发布时间戳刷新无法自动补偿,只能手动刷新恢复。现「本轮被抑制跳过查询」等价于「全部 Provider 进入跳过集合」,抑制运行原样回填上一份订阅服务并按新鲜期标注(锁屏超 30 分钟显示为过期值而非消失);锁屏期间仍不发起任何外部额度请求。
Agent 用量工作台改为真实数据,mac 与 Windows 同口径 (C070) :工作台(设置 → Agent 用量)此前多数数值为估算 —— mac 今日逐小时按固定 42/18/40 拆分、费用按 $2.8/1M 平价折算、「轮交互」= Agent 数 × 12、缓存节省按 90% 兜底、7/30 天模型构成按当月比例缩放、构成四象限的输出与缓存写入按总量比例推算、模型归并的子串别名把不同型号(不同单价)混算;Windows 费用 ×¥15.2/1M、模型 ×¥16.5/1M、缓存命中写死 21.0%,「近 30 天」实际只有看板的 14 天。
采集端 :artifact 新增逐日(近 31 天)/ 逐月 / 今日逐小时 × 模型的 token 桶,每桶按单价表(含用户价格覆盖)计价并给出缓存节省;daily 补齐缓存读取 / 写入拆分。价格前缀匹配改为确定性的最长前缀(原遍历 HashMap 取首个命中,跨进程结果可能不同)。增量缓存格式升级,升级后首次采集会全量重扫一次本机会话。
工作台 :KPI、模型分布、时序(今日逐小时 / 7·30 天与本月逐日 / 全部历史逐月)、Agent 表现与 Token 构成全部取自上述真实桶,不做任何估算;未定价模型单列「未定价」token 量而不计入费用,旧版 artifact 缺明细时显示「—」。「轮交互」(无数据来源)改为「最活跃 Agent · 占比」;项目分布只在「今日」显示(采集端只有今日数据)。模型归并只合并同一型号的不同写法(渠道前缀、快照日期、-latest、[标记]),不再跨型号别名。
Windows :工作台按 mac 卡片逐项重做(分段时间范围、导出 CSV 账单 / JSON 明细、折线 / 面积与四维度时序、合并 / 原始渠道模型视图、Agent 构成比例条与下钻、今日 24 小时密度),数据由 Rust 计算并以 mac 产出的 golden 逐字段(含浮点位)对拍锁定。
Windows 订阅卡 Provider 定向刷新 (C068) :订阅段每个 Provider 头部行尾补齐 mac 同款刷新按钮,只重新查询该 Provider 的额度、不重扫本机会话;结果合并回快照(其他 Provider、本机用量与成本保持不变,失败保留上次成功窗口并标记过期),与全量刷新串行执行。刷新中显示进度环,全量刷新中 / 未授权 / 未启用时禁用。
修复 Windows 从不查询 Cline 额度 :采集请求的 provider→凭证字段表漏了 Cline,设置页可保存 Cline 凭证却从未注入采集请求;改为单一映射表并加测试锁定其覆盖全部 Provider。
订阅 section 的 provider 键改由 Rust 运行时层单点归一后下发,前端不再镜像前缀规则(顺带修复 OpenCode GO 徽章取色失败)。
Windows 设置窗口即时生效 (C069) :对齐 mac,移除底部「保存设置」,每个控件变更立即保存;保存串行合并、失败回滚并提示原因(如热键冲突);只有影响采集的设置(授权、本机会话、启用的订阅、价格覆盖、刷新间隔)才触发重新采集,切换主题或调整顺序不再引发全量扫描。修复授权页「Agent 用量」开关切换无效。
Windows 看板与设置窗口按 mac 源码逐项对齐 (C067) :以 mac SwiftUI 卡片离屏渲染与 Windows 真实内核渲染在同一份 artifact 上并排比对,定位并修复 Windows 观感与 macOS 差异巨大的根因。
渲染缺陷 :.card-title / 模型档位按钮 / 品牌徽章的 font: … inherit 简写为无效声明被整条丢弃(标题失去 12.5pt 半粗、档位按钮回落 13.33px),改为逐项声明并加测试锁;Fluent 14 日柱容器恒为 0 高导致柱体不可见、只剩悬空数字,改为按当日总量占比取高、段按日内份额堆叠、总量紧贴柱顶;热力图程度图例色块无配色规则 (全透明),补齐两主题色阶。
结构对齐 :卡片标题行按 mac CollapsibleCardHeader 重排(拖拽手柄 → 定宽标题 → 行尾状态件 LIVE / 最后更新 → chevron),收起态迷你摘要嵌入标题行;四格细分按内容定宽;模型用量改由标题旁 chevron 切换前 3 / 全部(移除自创「展开全部 N 项」行);顶部 Header 改为「状态灯 · 品牌 · SYS.OK | Agent 数」布局,异常态仍在同一小牌内显式提示;底栏改为 SF Symbols 等价线性图标并在刷新中旋转。
数值对齐 :热力图列等宽撑满整卡(移除 Windows 自加的列宽上限);classic 卡片描边白 24%、无顶部高光、面板圆角 22;量条高 5 / 圆角 3 / mac 三档渐变 (去外发光);走势线改回 mac LineMark 默认线性折线 (更正 T08 的 Catmull-Rom 平滑,mac 仪表盘并未使用平滑插值);系统字体行高 1.2,Nothing 字体行高取自身度量;mac overlay 描边不增加尺寸,带边框组件 padding 扣除边框宽度。
Nothing 主题 :当月/选中月份与档位按钮改用 hero accent 绿(原被染成告警红);热力图改为 accent 透明度五阶并错相位呼吸;Hero 改为 Doto 52pt 字体自身点阵 + 纯色呼吸光晕(移除叠加的 radial 遮罩);字体只在 mac 指定的元素上替换;品牌徽章改为品牌色 16% 底 + 品牌色图形;阈值红统一 #D71921;走势线 heroGreen #30D158;点阵日柱段序对齐 mac(首段在顶);Header 状态灯保持圆点。
Token 计数 B 档 :Rust token_count 补齐 ≥1B 的 x.xxB 档并按 mac 规则裁剪末尾 0(原显示 6235.9M,mac 为 6.24B)。
设置窗口 :mac 设置窗口恒用 Fluent 平面 token,不随界面风格切换 —— 撤销 C066 的设置窗口 / T07 工作台 Nothing 纯黑化;侧栏 216 宽并以版本号收尾,内容区间距、分组标题(卡片外)、行标题字重、按钮与主色对齐 SettingsDemoTokens;界面风格与刷新间隔改为 mac 分段选择器,热键独立为「全局快捷键」分组。
回调 30 分钟额度硬编码门禁 (C065) :解决设置中心配置的 5 分钟或 10 分钟刷新间隔未能正常刷新订阅额度的问题。
额度周期与用户设置联动 :RefreshScheduler 的 quotaRefreshInterval 与用户在设置中心配置的 refreshInterval 实时双向联动绑定,当用户选择 5 分钟或 10 分钟时,订阅额度随定时器按 5/10 分钟周期真实查询刷新,不再被一刀切降级为 localOnly。
锁屏状态探测加固 :SystemScreenLockMonitor.isScreenLocked 引入动态双重判定(通知缓存 locked 与 CGSessionCopyCurrentDictionary 底层标志位或运算),确保锁屏状态 100% 精确感知,锁屏期间可靠抑制外部额度查询,解锁后无缝补偿全量刷新。
设置界面文案修正 :移除说明中“订阅云端额度自动查询最长 30 分钟一次”的限制性表述,对齐真实联动行为。
对齐 Claude Code (cc) 刷新机制 (C063) :解决 Claude 凭证在 8 小时 token 过期后必然报错 PROVIDER_AUTH_REJECTED 导致订阅额度刷新失效的问题。
Collector 主动续期与 401 容错 :在 expires_at_epoch_ms 剩余时间 $\le 60\text{s}$ 或遇到 401 时,主动调用官方 OAuth 刷新端点 POST https://api.anthropic.com/v1/oauth/token(对齐 cc 2.1.302 的 client_id 与请求头);换取成功后向返回载荷附加 credential_update 指令。
凭据白名单与嵌套持久化 :collector-credential 增加 claude 的 access_token / refresh_token / expiry 校验;Swift 侧 CredentialRotationMerge 支持更新 claudeAiOauth 与 claude.ai_oauth 内部嵌套字段,CredentialUpdateCoordinator 对 claude-cli 自动写回 ProviderAccountStore 隔离存储,实现无感自动续期与持久化。
外部 CLI 读取静默防护与弹窗根除 :探测 Claude CLI 登录态时改用 /usr/bin/security find-generic-password -s "Claude Code-credentials" -w 独立子进程静默读取,彻底根除进程内触碰外部应用 Keychain 项触发的 macOS SecurityAgent 密码弹窗。
隔离与防护 :自动化测试全程使用 FixtureHttp 内存 Mock 与沙箱临时目录,严禁真实外网连接;遵循 POSIX 0600 权限安全存储。
You can’t perform that action at this time.