Tabay 是一个本地优先的 Chrome 标签页管理扩展,用于保存窗口、整理 Collection、搜索已保存链接,并通过 Tabay Cloud 跨设备同步工作上下文。
当前版本:1.1.0
- Chrome MV3 扩展已按正式版结构归档到
src/extension/。 - 弹窗页、全屏工作台、Tabay Cloud 登录页和账号页已完成现代化 UI/UX。
tabay.zip可直接加载到 Chrome 扩展页,也可用于 Chrome Web Store 上传。- 本地测试、Cloudflare Worker dry-run、扩展打包流程已建立。
- 一键保存当前标签页到 Inbox。
- 一键保存当前窗口全部可用标签页到新 Collection。
- 自动跳过
chrome://、扩展内部页等浏览器限制页面。 - 保存后可自动关闭原窗口标签并进入整理流程。
- 创建、重命名、展开、折叠和删除 Collection。
- 按时间自动聚合:今天、昨天、本周、本月、更早。
- 支持列表视图和全屏工作台高密度整理视图。
- Collection 支持一键打开全部 Links。
- 打开单个 Link。
- 删除单个 Link。
- 拖拽 Link 在不同 Collection 之间移动。
- 显示 favicon、标题和 URL。
- 支持备注、标签和归档状态。
- 实时搜索标题、URL、备注和标签。
- 自动过滤空 Collection。
- 弹窗页支持轻量搜索,全屏工作台支持集中整理。
- Chrome
storage.sync分块存储大型数据。 - 本地账号分区缓存,支持访客数据和登录账号数据隔离。
- 自动备份和数据有效性检查。
- 损坏数据可从备份恢复。
- 支持 JSON 导出备份和导入恢复。
- 邮箱密码注册和登录。
- Cloudflare Workers API、D1 数据库、KV 配置、R2 备份桶。
- Spaces / Collections / Links 云端内容模型。
- 本地变更离线队列,恢复网络后可继续同步。
- 账号页支持设备列表、设备退出、数据下载、云端备份和账号删除。
- 支持退出登录时保留、清除或导出后清除本地账号数据。
- 弹窗页用于快速保存、搜索、查看状态和进入工作台。
- 全屏工作台用于批量整理、统计、备份恢复和云端操作。
- Tabay Cloud 登录页和账号页采用统一现代化界面。
- 支持浅色/深色主题,跟随系统外观。
- 批量操作显示进度,拖拽操作提供视觉反馈。
- Popup 状态区采用固定 420px 宽度,短状态 chip 与数据摘要分区展示。
- 使用 Chrome Extension Manifest V3
- 使用 Cloudflare Workers / D1 / KV / R2 / Pages 作为云端服务基础
- 支持 Tabay Cloud 邮箱密码注册和登录
- 提供 Tabay Cloud 账号页,用于设备、导出、备份和账号删除
- 模块化项目结构,扩展端、Cloud 页面、Worker、脚本、测试和文档分类清晰
- 完整的错误处理机制
- 优化的数据存储方案
- Jest 自动化测试覆盖扩展状态、弹窗、Cloud 登录页、账号页、Worker 和同步存储
- Cloudflare dry-run 和打包脚本用于发布前验证
- Node.js >= 14
- Chrome >= 88
npm install# 运行测试
npm test
# 运行测试(监视模式)
npm run test:watch
# 生成测试覆盖率报告
npm run test:coverage
# 更新版本号
node update_version.js
# 打包插件
./package.sh
# Cloudflare Worker 本地开发
cp cloudflare/.dev.vars.example cloudflare/.dev.vars
npm run cf:dev
# Cloudflare 本地 API smoke
npm run cf:smoke
# Cloudflare 资源状态检查
npm run cf:status
# Cloudflare 登录后的完整上线编排
npm run cf:provision -- --create-resources
# Cloudflare D1 初始化
npm run cf:d1:migrate:local
npm run cf:d1:migrate:remote
# Cloudflare Worker / Pages 部署
npm run cf:check
npm run cf:deploy
npm run pages:auth:deploy- 打开 Chrome 浏览器,进入扩展程序页面 (chrome://extensions/)
- 开启右上角的"开发者模式"
- 使用
./package.sh生成tabay.zip - 将
tabay.zip解压后通过"加载已解压的扩展程序"选择解压目录,或将 zip 用于 Chrome Web Store 上传
npm test -- --runInBand
npm run cf:check
git diff --check
./package.sh
unzip -l tabay.zip | rg "manifest.json|src/extension/popup.html|src/extension/styles.css"
shasum -a 256 tabay.zip最近一次验证产物:
- 版本:
1.1.0 - 文件:
tabay.zip - SHA256:
c80aeeb3e7d399e071a1a15a2df57d1c4027fe5855ccf397367a33fe67526708
├── manifest.json # 插件配置文件
├── src/extension/ # 扩展弹窗、工作台、后台脚本、状态与同步客户端
├── pages/auth/ # Tabay Cloud 登录页、账号页和页面样式
├── cloudflare/ # Workers、D1 schema、Wrangler 配置
├── scripts/ # 图标构建与 Cloudflare 管理脚本
├── docs/ # 项目审计、Toby 参考、UI 设计、发布检查
├── design-system/tabay/ # UI/UX Pro Max 生成的设计系统
├── tasks/ # 当前计划与经验规则
├── icons/ # 图标文件
├── tests/ # 测试文件
└── package.json # 项目配置文件
- 正式版本号更新到
1.1.0。 - 重新生成 Chrome Web Store 上传包
tabay.zip。 - 打包脚本支持通过
TARGET_VERSION=1.1.0 ./package.sh生成指定版本。
- 修复 Chrome popup 状态区在极窄布局下显示成竖排的问题。
- Popup 首屏锁定 420px 宽度,避免扩展弹窗首次布局塌缩。
- 新增数据健康摘要区,短状态展示在 chip 中,分组、标签和存储占用分区展示。
- 快捷操作改为稳定 2 列 grid 布局。
- 新增 popup 状态区和布局契约测试。
- 打包产物
tabay.zip已重新生成。
- 完成正式可用版本收口。
- 将扩展源码迁移到
src/extension/,Cloud 页面、Worker、脚本、测试和文档分类归档。 - 重新设计弹窗页、全屏工作台、Tabay Cloud 登录页和账号页。
- 添加项目审计、Toby 参考、UI 设计和发布检查文档。
- 更新 Manifest、打包脚本、Jest 路径和 Chrome API mock。
- 添加 Cloudflare Workers / D1 / KV / R2 服务骨架
- 添加 Tabay Cloud 账号、同步、备份 API
- 添加本地存储适配、云端客户端和同步服务
- 添加 Spaces / Collections / Links 内容模型迁移能力
- 更新隐私政策和 Chrome Web Store 文案
- 添加夜间模式支持
- 优化暗色主题下的视觉效果
- 改进界面对比度和可读性
- 添加标签拖拽功能
- 优化标签组编辑功能
- 改进数据同步机制
- 添加加载状态提示
- 优化用户界面交互
- 优化数据存储方式,解决存储限制问题
- 改进用户界面交互
- 添加数据同步状态显示
- 初始版本发布
- 实现基本的标签管理功能
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m '添加一些特性') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
MIT License