自 v2.4.1 起 95 commits · 706 files · +80,691 / −13,948。三条主线:
🎛️ 统一模型选择器(ModelPicker)与 provider 状态真源化 ·
🛡️ 对 2026-08-17 现代化升级方案的 100+ 条缺陷逐条收口(含多条安全 / 数据丢失级修复)·
📦 装机包 50 MB → 32 MB,React 彻底移出 service worker。
⚠️ 破坏性变更:minimum_chrome_version 从 142 抬到 148(Chrome 内置 Prompt API
在 148 才整体落地),Chrome 142–147 将无法安装本版本。
⚠️ 用户可感知的行为变更:自动清理默认从「自动删」改为「仅提示」并新增开关;
「删除所有数据」现在真的会删掉书签镜像 / 收纳标签页 / 日志 / AI 设置,API 密钥单独勾选;
书签删除(健康页 / 侧栏)一律连 Chrome 一起删;死链检测在未授权站点时一个请求都不发;
撤销站点访问后,页面内残留的内容脚本再也无法调用云端 AI / TTS / 读取正文;
翻译槽位不再提供 Ollama / LM Studio 等本地网关。
🎛️ 统一模型选择器与 Provider
- 统一 ModelPicker:Dashboard 四个文本 slot、Sidepanel 设置、翻译工作台与聊天 composer 统一使用一个双层面板选择器;provider/source 状态、目录错误/重试、本地浏览器与 local-native 模型共用同一数据边界(
useModelPickerData),12 语种文案齐备。旧 model-selector.tsx 与 TTS fallback 删除。设计与验证范围见 docs/reviews/2026-09-02-model-picker-unification.md。
- Provider 状态一致性:内置与自定义 provider 卡片复用
SourceStatusBadge 与同一状态解析器;探活互斥改为集合,过期 checking 不再永久锁死 Detect;幽灵密钥问题优先于短期健康缓存;写入 key 后立即失效健康缓存。内置 provider 改用 vendored 品牌 logo。
- 价格口径统一为 USD/1M tokens:
ModelInfo.pricing(USD/1K + unit)改为 ModelInfo.pricePerMTokens,选择器里的单价不再差 1000 倍;contextWindow 为 0 时归一;anthropic / google / xai 改为真实鉴权发现。旧 modelCache 行整行判为失效并重新拉取——升级后首次打开模型列表,价格会短暂缺失,直到目录刷新完成。
- AI 设置目录三态 + 修订哨兵:provider-keyed 目录 idle / loading / ready 三态,快照与迁移共用一套校验;唯一 slot 写入器杜绝并发写互踩。
- local-native:端点变更即重置发现结果,网络类失败保留已知模型列表。
🌐 翻译
- 同语言直通:源 = 目标(含 auto 检测撞上目标)时恒等直通,不再让 Chrome Translator 拒绝创建、也不再让云端 / 本地模型为恒等改写白白计费;zh-CN ↔ zh-TW 明确排除在直通之外。
- 语言撞车自动交换 + ⇄ 交换按钮;原生
<select> 换 base-ui Select;原文 / 译文改为可拖拽分屏(宽屏左右、窄屏上下,比例持久化,双击复位)。
- 翻译工作台切到 ModelPicker,槽位真源化、写入互斥、本地网关 fail-closed;目标语言不再写死 zh-CN,zh-CN / zh-TW 不再被砍成同一个 zh;单块失败不再拖垮整篇,译文不再被静默截断,任务不再变成孤儿。
🔖 书签与收纳
- 当前页收藏指示:per-tab badge 呈现收藏态(SPA 路由也能判定),侧栏当前页条带一键收藏 / 撤销 / 多重命中 / 仅本地 / 孤儿降级全状态机;
localBookmarks 新增 normalizedUrl 派生索引(Dexie v5 自动回填)。
- 侧栏书签树:headless-tree + 虚拟化,展开态按稳定键持久化,键盘导航与 RTL 镜像。
- 收纳启动页提速:预载改为路由 chunk 就绪后空闲串行执行,favicon 改走本地
_favicon 端点(零网络、离线可用),展开态持久化、收纳后新卡定位高亮;e2e 断言收藏页零非扩展源请求。
- 全量同步只重建 Chrome 镜像且整体落进一个事务;同步历史不再无限增长;收纳 / 恢复不再静默丢链接;JSON 导入不再把嵌套文件夹打平到根;收纳后关不关标签页由用户说了算;书签与聊天同步不再互相踩,跨根跳转不再静默无效。
💬 对话面板
- 用户消息原样渲染(不再被 Markdown 折行 / 吞掉
<think> 字样);/clear 原地重置而非跳到最右端;斜杠命令菜单补齐候选项。
- 追问和重新生成不再对着一个看不见的页面编摘要;删中段消息不再断链,备份带上根层分支选择;「在聊天中继续」改走 canonical 写路径,回复不再永远看不见;只有附件的发送不再整轮消失;Enter 提交的是自己那个会话的表单;@-mention 弹窗说发了多少就真发了多少。
- 模型终于看得见自己调过什么工具(transport 层补齐 tool-call / tool-result 回填);内联 AI 卡片不再永远转圈,停止按钮在 SW 重建后仍然管用。
- 面板开关状态改用原生
sidePanel.onOpened / onClosed,不再推断。
🧠 本地 AI 与 TTS
- 移除
@browser-ai/transformers-js,Chrome 内置 AI 四个全局改用 @types/dom-chromium-ai 自实现 provider;修好 local-native 三处硬缺陷;Chrome AI 初始化覆盖全部四个 API。
- 本地对话装载期发出进度帧,看门狗不再把冷启动当成死流。
- Kokoro 朗读修复:voice pack 字节数校验写错(511 vs 实际 510 行),此前每一次 Kokoro 朗读都被拒;没有句号的长文本不再念到一半就没了;声音终于停得下来(内容侧按钮 + 后台侧孤儿 run);云 TTS 不再永久转圈。
🛡️ 安全与隐私
- 撤销站点访问后,页面内孤儿内容脚本再也发不动云端 AI(新增
requireHostAccess 门,覆盖划词工具条 / 内联 AI / 正文读取 / 内容侧 TTS)。
- 内容脚本不能再把进行中的对话读走;工具读到的 URL 也脱敏了,不只是 @-mention;主密钥丢失时如实报错,不再静默铸一把新的。
- 破坏性操作 token 的 docstring 不再自称「双重防护」,内联 payload 有了真上限;死链检测不再向未授权站点发请求。
🗄️ 存储与数据
- 自动清理装上护栏:默认「仅提示」、可关闭、delete 模式删完会告诉用户;此前它以 origin 级用量(含数 GB 本地模型权重)作为停止判据,会把整个聊天历史删空。
- 「删除所有数据」覆盖 5 个存储域与
exportAllData 对称;/clean 不再无声清站点数据,命令失败终于看得见。
- 日志:
redactSensitive 补 Error 分支救回 318 个调用点的错误信息,导出的日志带上错误消息;历史搜索保留最新命中并如实说明截断。
📦 性能与包体
- ORT 换 jspi 变体(−9 MB),shiki 改 19 语种 + 2 主题白名单(再 −9 MB):装机包 50 MB → 32 MB;删掉零引用的
jsep.mjs。
- React 与 zustand React 版从 service worker 依赖图彻底摘出(5 个 store 改走 vanilla);SW 甩掉 73 KB 死 provider 与三个远端 URL;45 KB 模型窗口表移出侧栏首屏。
- 构建期 modulepreload 策略首次真正接入 Vite,只守护必须保持懒加载的 chunk,并由 post-build 静态闭包不变量测试兜底。
🎨 UI 与 i18n
- 内容脚本字号配置终于生效;阿拉伯语方向传得进 base-ui;壁纸点了有反应;@tab 空查询有结果;toast 不再白底。
- 双 i18n 运行时收敛为一套;内部英文错误串不再直接渲染给用户;送审文档与设置页不再描述不存在的功能。
- 拆掉 Tailwind v3 插件与两处对抗框架的写法。
🧰 工程、闸门与依赖
- 闸门:体积预算真的评估刚构建的产物;chrome 边界换成 oxlint 原生规则;静默失败棘轮能看见注释-only 的 catch;oxfmt 格式化接进闸门;
exhaustive-deps 清零并打开成 error,react-compiler 立 --max-warnings 棘轮;覆盖率棘轮等三关接进 CI,check:docs 补进发版路径;17 个 colocated spec 纳入类型检查;纯逻辑用例改跑 node 环境。
- 删掉从未混淆过的「混淆构建」;三套 analyze 工具收敛成一条;
.gitattributes 钉死 LF;显式配置供应链发布延迟策略。
- 依赖:两批共 32 包升级(shiki 4、oxlint 1.79 拆分 react-compiler 插件、oxfmt 0.63 等);两份逐字相同的 EventEmitter 收敛。
- 文档:《2026-08-17 现代化升级方案》与逐条执行台账、剩余 86 条复核、书签三专项方案、模型选择器统一方案与三轮评审归档在
docs/reviews/。