单用户多仓库。 配套服务端 v0.19.0(先升服务端)。协议 v6 不变;
X-Vault-ID 为可选头,0.18 插件对 0.19 服务器零感知(一切按默认仓库工作)。
新能力
一个 API Token(一个人)名下可以有多个互相隔离的远端仓库:
- 接入向导先选仓库:向导第一步列出名下全部仓库(名字/文件数/大小),
可选任意一个(远端覆盖本地 / 两端合并)或新建(本地文件初始化上去)。
名下只有一个仓库时也会显示(预选它,一键继续)——「新建仓库」的唯一
入口在这一步,不因数量而跳过。空远端场景向导内直接提供
「添加 E2EE 并初始化」,首次上传即密文,无需先明文初始化再迁移。 - 切换仓库 = 重新走接入向导,没有轻量开关——切换会作废本设备的同步
记录(本地笔记保留)并按所选方式恢复/合并/初始化,这个重量在界面上
如实呈现。切换或新建需要账户的 API Token——配对导入的设备(持设备凭据)
会在弹窗内就地补填,无需绕去设置页;设备凭据本身仍只绑定单一仓库
(一台被盗设备不能横向进入你的其他仓库——刻意的最小权限)。 - 一个 E2EE 密码可以用于多个仓库,但每个仓库是独立的密钥文档与独立的
盐:同一密码在不同仓库派生出完全不同的密钥,一个仓库的密钥材料泄露
不波及其他仓库。各仓库分别解锁。 - 网页端仓库切换器:登录后右上角切换(多于一个仓库才显示),
每个仓库独立解锁;重置 Token 的 E2EE 门禁升级为「名下任一仓库的
重置凭证均可验证」。 - 新仓库强制端到端加密:空远端的初始化只剩「设置 E2EE 密码并初始化」
一条路(向导与首次配置对话框一致)——首次上传即密文,不再有「先明文、
事后迁移」这种让明文经过服务器的路径。既有明文仓库不受影响。 - 插件设置页显示当前仓库(名字、远端文件数、名下仓库总数),并可
就地重命名(只改显示名,同步/加密/其他设备零影响;配对导入的
设备会被要求先填账户 Token)。 - 网页端解锁页多仓库提示:标明正在解锁哪个仓库、就地切换下拉;
密码错误时提示「若这是另一个仓库的密码,请切换后再解锁」——每个仓库
的 E2EE 密码相互独立,密码本身不选择仓库。 - 网页端仓库管理页(账户 → My vaults):列表 / 新建 / 重命名 / 删除
(输入仓库名确认;未命名的仓库须先重命名才能删;不能删最后一个;
删除当前查看的仓库后回到默认仓库)。 - 仓库管理 API:
GET/POST /api/v1/vaults、PATCH /api/v1/vaults/{id}
(重命名)、DELETE /api/v1/vaults/{id}
(输入仓库名确认;不能删最后一个;每用户上限 20)。 - 安全边界(自动化矩阵盯着):
X-Vault-ID只是「选择」,授权永远由服务端
成员关系裁决——他人仓库一律 404(不泄露存在性);设备凭据带头无效。
体验与修复(五轮预发布实测沉淀)
- 向导全流程一遍过:解锁 E2EE 弹窗叠加在向导上,不再从选仓库步重来;
- 手动「立即同步」成败都有结果消息(下载/上传数、冲突数、失败原因),
自动同步保持安静; - 设置页就地刷新:解锁/启用 E2EE、重命名成功后立即反映,无需离开再进;
- iOS:软键盘回车即提交并收起键盘(密码键盘无收起键且盖住底部按钮);
名字输入框可正常使用第三方输入法;密码管理器填充 Token 不再污染
重命名框(重试只用输入时捕获的名字); - 管理员 Users 页多仓库用户不再重复出行;
- 静态资产 ETag + no-cache:CDN(如 Cloudflare 代理)每次回源校验,
发版即生效,不再出现「网页端像旧版」。
升级
- 先升服务端(迁移零表结构变化),再升插件;
- 升级后一切默认行为不变;想拆分仓库时在向导里「新建仓库」即可。
测试
插件 300 条 / 服务端全量绿(新增:仓库生命周期与上限、同用户跨仓库隔离
端到端、他人仓库头 404、设备伪头无效、any-vault 重置门禁、指纹含仓库
选择、管理列表无重复、静态资产 ETag);验收手册新增 §5c
(T5.15–T5.18 及 T5.15b/c);Windows + iOS + Web 三端实测通过
(0.19.0-rc.1 … rc.5 五轮预发布收敛)。