Skip to content

feat(webext): 重写独立 Peer 采集并接入版本分发 - #161

Merged
xiaoland merged 13 commits into
mainfrom
feat/webext-collection
Oct 27, 2026
Merged

xiaoland merged 13 commits into
mainfrom
feat/webext-collection

Conversation

@xiaoland

@xiaoland xiaoland commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

目的与范围

将 WebExt 重写为独立、平等的网页采集 Peer,并完成无需商店账号的版本与手动分发流程。通过现有 PostgREST、Block/Relation 和 Storage 直接读写共享信息库,不依赖 client-web 私有源码、会话或代理,不新增网页业务 RPC。

  • 支持网页、选区、附注、PDF、书签和历史导入,保留本机待办、连接归属、导入进度和失败载荷。配置可离线完整读改,Peer 登记和续租不阻断材料提交。
  • hard-cutoff Explain、Writing Assist、旧浮栏和图编辑侧栏,保留旧数据迁移。沿用原灰底方角卡片、InkUI 密码显隐和紧凑 ON/OFF。
  • WebExt 使用正式 InkUI 2.6.0 的公开 Logo 入口,保留对应尺寸、主题图标和原外观。2.5.0 与 2.6.0 各保留重复字段的一行版本限定 patch,待上游修复后移除。
  • 复用 Changesets 与工作区 Version PR,独立交付 Chromium ZIP、Firefox 未签名 ZIP、源码归档及摘要;固定浏览器身份,提供早期安装的数据转移。
  • Core 仅补显式连接/token 接缝。保留 main 的语义阅读、命名连接迁移、Core 0.4.2 和正式 Runtime 消费者;旧命名连接经 core schema 验证,在同一 IndexedDB 事务迁入,保留名称、选择和 Peer 身份。旧 HTTP API 地址仅封存供导出,不推断为数据库凭据。

受影响交付项目为 @inkcre/client-webext;minor Changeset 准备后续 0.2.0。共享 Core 接缝及其他项目版本沿用已合入 main 的发布状态。

验证

最终候选 600064d 同步 main b93548b。解决公开依赖安装与本分支锁文件冲突,保留 InkUI 2.6.0 及原补丁,补齐公开 Release override;未改变其他依赖版本。2.6.0 原包匿名下载与原锁文件完整性摘要一致,冻结安装通过。WebExt 发布工作流同步使用免凭据安装。

当前候选本地全仓 pnpm check、Firefox 构建和发布规则 3/3 通过;最终 head 600064d 的 CI 和 预览 全部通过:Web E2E 26/26、WebExt 无数据库 E2E 5 passed / 7 skipped、双浏览器构建及发布规则 3/3。

历史补充验收包括隔离 Helium + 可销毁数据库 11/11、sfp7 Firefox 156 配置/采集/书签/历史/PDF/公开 MDN 读回、宽屏/390px 窄屏/深色截图,以及旧身份迁移、固定身份换目录升级和完整待办保留。7 项需真实数据库的 WebExt 用例未在本轮重新验收。正式 UI 2.6.0 的全部 PNG 字节、尺寸、manifest 和浅深 SVG 已检查;图形未变,复用既有视觉证据。

本 PR 无待合并的父 PR 或未解决评审线程。用户明确接受并授权合并及本地清理,最终检查通过后已 squash 合并为 115ca68。子 PR #170 仍以本分支为 base,需由其 owner restack 到新 main 并重新检查,在此之前保留远端父分支。

交付边界与风险

当前 package 版本继承 main 为 0.1.4;未消费的 WebExt minor Changeset 阻止发布当前版本,后续 Version PR 准备 0.2.0。合并本 PR 不等于合并 Version PR 或上传浏览器商店。Firefox ZIP 未签名,仅供临时加载;AMO 签名需账号和独立重建、声明/同意流程验收。InkUI 依赖已公开,无需私有包凭据。

尚未验收实际 GitHub Release 写入、商店签名/自动更新、Firefox 原生 popup/权限提示/工具栏主题切换和完整重启恢复,以及私人资料大规模压力。未来 Chrome 商店 ID 承接也未实证。

早期无公钥安装须在原路径加载迁移构建并导出,再停用旧实例、迁入固定身份空实例;不要卸载旧实例。跨 ID 不转移浏览器授权,导出含明文密钥;避免同时启用相同 Peer 身份的新旧实例。迁移失败可停用新实例,恢复旧构建和原 profile。普通图写入可能部分完成或重复,不承诺全图事务。

本地任务 worktree、构建缓存和分支已清理;子 PR #170 完成 restack 前保留远端父分支。旧 b21d33f 候选包及来源清单保存在 /Volumes/WorkSSD/Development/InKCre/artifacts/webext/local-candidate-b21d33f,全部资产 SHA256 已核对;仓库外身份私钥保留。其他 checkout、stash 和日常浏览器未操作。

- 使用普通信息图与 Storage 保存网页、选区、附注及 PDF,移除旧工具入口
- 支持完整配置读改和离线保存,解耦 Peer 登记、材料提交与界面轮询
- 保留原 UI 风格并复用 InkUI,补充 Helium 和 Firefox 验收及恢复测试
- 复用 Changesets 准备版本,增加双浏览器下载包与精确来源归档

- 固定 Chromium 身份,保留旧安装数据迁移和升级回归

- 使用品牌包深浅图标,明确 Firefox 未签名与商店接入边界
- 材料类型检查复用源码路径,Node 浏览器测试保持包导出解析

- 在 WebExt E2E 前构建 Core,消除本机 dist 缓存依赖

- 记录双浏览器验收和未签名候选包证据
- 实际检查 Linux 截图后允许紧凑开关两像素字体差异,不改 UI

- 根据当前 manifest 计算升级版本并保留完整数据断言
- 核对当前 TS7 质量门禁与历史浏览器验收的证据边界

- 记录 Ready 授权、迁移风险和未签名分发限制
@xiaoland xiaoland changed the title feat(webext): 重写独立 Peer 的网页采集与导入 feat(webext): 重写独立 Peer 采集并接入版本分发 Oct 26, 2026
@xiaoland
xiaoland marked this pull request as ready for review October 26, 2026 05:17
- 页面从公开 npm 子路径导入 SVG,WXT 从同包装配平台图标
- 删除重复素材并锁定正式依赖,保留版本限定的输入框修复
- 验证两浏览器产物的图标尺寸、源字节和 manifest 身份
- 保留主线语义阅读与命名连接功能,按重写后的扩展结构解决旧模块冲突
- 原子迁入命名连接、当前选择及既有 Peer 身份,封存旧 HTTP API 地址
- 更新真实扩展回归,验证迁移、重启和跨页面切换
- 按地址验证无名称旧连接,保留私有数据迁移验收
- 保留正式 InkUI 2.6.0 与输入补丁,采用公开 Release 原包。

- 对齐主线免凭据安装,更新发布说明和合并清理记录。
@xiaoland
xiaoland merged commit 115ca68 into main Oct 27, 2026
8 checks passed
@xiaoland
xiaoland deleted the feat/webext-collection branch October 27, 2026 06:03

This branch was successfully deployed

1 active deployment
preview — 600064de Deployed Oct 27, 2026 by xiaoland via Retire exact Pages preview #155
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant