Skip to content

feat: add Dropbox configuration sync and illustrated setup guide - #759

Open
Bistutu wants to merge 8 commits into
mainfrom
codex/dropbox-sync-20261003
Open

Bistutu wants to merge 8 commits into
mainfrom
codex/dropbox-sync-20261003

Conversation

@Bistutu

@Bistutu Bistutu commented Oct 3, 2026 •

Copy link
Copy Markdown
Member

设置页现在可以使用自己的 Dropbox 按次保存、恢复或合并完整配置,与 Google Drive / WebDAV 共用“配置云备份”入口及两步确认界面。预览展示本次账号,成功后保留账号和时间;更换账号、取消或失败不会覆盖上次成功记录。没有 App key 的构建明确显示尚未启用。

  • 授权码 + S256 PKCE,以公开 App key 识别应用,不使用 App secret 或 refresh token。十分钟预览的临时令牌只放在扩展 session storage;完成、失败、取消或离开页面时清理。
  • 固定 App folder 文件首次 add、按 rev 条件更新;确认前不写配置,远端或本机变化后要求重新预览。包含配置中的 API Key 等服务凭据,不包含单词本、聊天记录和用量统计;保留 20 MiB 明文 / 32 MiB 密文预算。
  • 支持七种界面语言;提供 中文图文指南 和 英文指南,含创建应用、四项 scope、精确回调、App key 构建、生产访问及排错。官方示例图有箭头与圈选,扩展截图使用虚构账号,附 Mermaid 与来源说明。README 保持简短,中英文隐私政策补齐数据处理。
  • 已集成最新主分支的 WebDAV 和文档站重构,解决冲突并固定合并后用户脚本语言资源。

验证:

  • 共用云备份 14 个测试文件 / 62 项通过,Dropbox 新模块及共用事务、消息和客户端四维覆盖率均为 100%。i18n、源文件说明、manifest、预览模型及用户脚本资源相关测试通过;未运行全量产品回归。
  • 隔离临时 Edge 的真实扩展 UI:配置夹具公开 App key 时 22 项通过;默认无 App key 时 5 项通过。覆盖真实配置存储、凭据恢复、换号取消、脱敏、英文及 390px 布局。Dropbox OAuth / HTTP 均为虚构响应,第二屏可见、不抢焦点,无日常 profile 或真实账号访问。
  • TypeScript/Vue、Chrome / Firefox、manifest verifier、文档类型与构建、静态页面校验、test:audit 通过。用户脚本 verifier 通过:1,871,503 bytes <= 1,950,000。
  • verificationOwnership 有 2 项既有失败,已在当前 origin/main 87320918 的独立源码快照复现相同路径:3 个网站/品牌脚本缺验证登记,8 个分享卡片等模块缺 strict coverage 登记。完整证据与范围见 验证记录。

发布边界:尚未提供真实 Dropbox App key,默认构建未启用 Dropbox。真实 OAuth、跨设备实测、Dropbox 生产审批及商店发布未验证。维护者须按教程创建 App folder 应用、登记回调并配置 WXT_DROPBOX_APP_KEY 后构建和实测;普通用户无需创建应用或输入密钥。固定公开应用口令的保护边界已如实写入隐私政策。未借用参考仓库代码。

@Bistutu
Bistutu force-pushed the codex/dropbox-sync-20261003 branch from 78ef347 to 93cfc7d Compare October 5, 2026 07:57

This branch has not been deployed

No deployments
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