Skip to content

refactor: 聚焦持续学习、统一插件体验并采用 AGPL - #50

Open
KraHsu wants to merge 7 commits into
codex/device-sync-p10from
codex/learning-scope
Open

KraHsu wants to merge 7 commits into
codex/device-sync-p10from
codex/learning-scope

Conversation

@KraHsu

@KraHsu KraHsu commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Repeaty 聚焦持续学习和个人知识网络:移除通用写作与网站发布,保留简单材料修改和完整卡片编辑。插件管理改为常驻可搜索目录,逐项安装、更新,启停独立管理;无需滚到详情底部寻找官方插件入口。项目原创代码、SDK、官方插件和自制素材采用 AGPL-3.0-only,第三方声明保留。

本 PR 基于尚未合并的 #49(codex/device-sync-p10)。

产品范围

  • 删除静态网站、Cloudflare Pages、WordPress、Discourse 发布插件、预构建包、共享发布客户端、宿主 publishing 服务及 SDK;通用网络、凭据、授权与取消接口独立保留。
  • 已安装的旧官方发布插件在执行前停止加载,保留学习库中的包和数据,允许卸载;拒绝重新安装或启用时不授予信任、不覆盖包。
  • 材料保留正文、标题、来源、YAML 属性、保存快捷键、草稿、冲突检查及历史版本,移除排版工具栏和自动列表/Tab 缩进。卡片丰富编辑、Wiki/反向链接、知识组织、批注及外部更新协议保持可用。
  • 学习助手聚焦学习问答、知识整理、制卡和简单材料修正。分享文档明确区分资料原文/原件导出、CSV/TSV 与 Anki 导入及整库备份;指定卡组分享包和完整资料分享包尚未实现,不把携带个人进度的备份描述为分享功能。

插件管理

  • 页首搜索与全部/已安装/可更新筛选,列表行内直接安装或更新;右侧详情标题集中配置、卸载及启用开关。插件信息位于 README 前,通用存储说明在页头,分割线使用相同的上下间距。保留绿色 B、共享 Nuxt UI/AppPage、浅深色主题及减少动态效果设置。
  • 新安装/重新安装默认关闭,更新保留原启停状态;关闭状态不执行候选代码。先可靠保存关闭状态,再写入新包;写入、执行或切库失败沿用事务及运行时隔离保护。
  • 官方目录先读取元数据,选中时才下载单个包;目录刷新、卸载及切库后的迟到请求不得安装或污染当前详情。没有新增远程商店或自动更新。
  • 名称后以较小、较浅的作者文字显示官方 @repeaty 或第三方作者。SDK 1.16.0 和新包安装要求 author,旧已安装包缺少作者仍可管理。官方独立包、版本、锁文件和示例已同步,插件源码仍不进入本体构建。
  • 更新官方插件和文件安装的浏览器夹具,安装后显式启用;材料选区夹具精确选择工具栏动作,避免同名按钮歧义。

桌面关闭

右上角 X 在开发页面整页刷新后可能无响应:原生侧残留的旧 JS 关闭监听会再次拦截原有二次 close 请求。入口保留关闭请求及当前会话的保存、托盘和更新检查,仅批准后执行最终销毁;失败时保留检查并在标题栏提示重试。增加主窗口所需的最终关闭权限,原生权限更新后需完整重启开发应用。手动验收清单补充刷新后关闭及托盘/保存保护,未将自动测试当作原生验收。

共享分区间距

sections.css 集中定义分区边线及 --app-section-gap:线上、线下各 1.5rem(默认 24px)。设置标题/注册项、插件信息/README、备份、学习概览、复习、材料与表单分区复用同一规则;单列堆叠和多列网格避免父 gap、子 margin 重复累加,窄屏沿用相同间距。历史/表格行及固定操作栏保留原结构语义。

逐个检查全部 14 个官方插件。格式清理、网页查询、视觉遮挡、学习助手及阅读器等内容分区复用宿主间距,工具栏、滚动面板、列表和表格复用共享边线类;插件中仅保留响应式切换时清除/恢复边界的规则。所有官方包提升补丁版本并独立重建,已安装插件需显式更新。界面规范记录公共类和间距责任,插件源码仍不进入本体编译。

AGPL 许可

  • 根 LICENSE 使用完整 GNU AGPL v3 文本,许可标识为 AGPL-3.0-only;NOTICE 保留项目版权和对应源码地址。同步 README、20 份项目 npm 元数据、工作区锁文件、3 份 Rust 包元数据、Tauri 许可打包配置、SDK 副本及自制素材说明。
  • 网页/桌面前端分发 licenses/repeaty.txt,离线缓存使用相同文件;14 个官方独立包均携带 assets/licenses/AGPL-3.0.txt,README 标明许可和源码位置。第三方依赖及其版权声明不改写。
  • 设置分类不再使用带额外分发限制的第三方改编:改为项目自身的 CSS 树实现,保留分类聚合、Nuxt UI、分支外观、滑动选择、折叠、键盘导航和生命周期清理。历史归属通知保留在文档,当前产物不再捆绑旧组件代码。

验证

  • 本轮官方插件/许可最终检查:SDK 与官方插件 224 项测试、宿主菜单/设置 13 项测试通过;宿主及全部官方插件类型检查、格式/diff 和桌面 cargo check --locked 通过。14 个独立包构建通过,逐个核对完整 AGPL 字节及版本一致;20 份项目 npm 和 3 份 Rust 包许可元数据一致。

  • 11 项 Chromium 回归通过,覆盖菜单滑动/减少动画、宽窄与大字对齐、配置/格式清理、阅读器、FSRS 和统计;另通过 2 项本地视觉流程,检查格式规则、查询目标、助手及真实导入图片后的遮挡工具。测得分区上下 24px,浅深色与窄屏无横向溢出。过程记录仅本地保留。

  • 共享分割线:宿主和两个插件类型、格式及 diff 检查通过;72 项宿主相关单测、FSRS 24 项与统计 12 项单测通过。11 项现有 Chromium 回归通过,覆盖设置/独立插件、概览/备份/工作目录、短长与插件复习卡、FSRS 训练及统计,包含 500px 窄屏和 200% 字体。

  • 设置/插件浅深色 1440px/760px 共 48 次边界测量均为上下 24px;另检查概览、备份、复习和材料截图,修正窄屏计数尾 margin 与材料首说明的叠加间距,最终测量复验通过且无横向溢出。浏览器使用真实 Rust store 与模拟 IPC,不替代原生客户端验收;过程记录和截图仅本地保存。

  • 关闭修复:8 文件、51 项针对性测试通过;使用真实 Tauri Window/event API 的 IPC 回归在旧实现 3/3 失败、修后 3/3 通过。宿主类型/格式检查与 cargo check --locked --manifest-path src-tauri/Cargo.toml 通过。

  • 插件管理最终改动:7 文件、131 项针对性宿主单测通过;SDK 打包 8 项测试及热力图 10 项测试通过;宿主和全部官方插件类型检查、修改文件格式及 diff 检查通过,14 个官方独立包构建通过。

  • 真实 Chromium 的 16 个相关场景均通过,包括热力图、格式清理、参数训练、统计、独立页面、材料导入/阅读器和来源连接。格式清理和材料插件生命周期最后各连续运行 3 次,6/6 通过;安装/启停/卸载与刷新读回、懒加载及失败重试的主流程另连续通过 3 次。

  • 查看浅色、深色、720px 窄窗口和 200% 缩放截图,并完成一轮独立 UX 走查;修正过时安装说明及开关缺少可见标签的问题。过程材料仅本地保存。

  • 范围收敛提交 76c35b3 已完成宿主全量 1209 项通过、1 项既有跳过,Rust 存储联测 49 项、Windows 发布规则 28 项、剩余官方插件测试、静态及桌面前端构建;这些不替代插件管理上述最终复验。

本轮未修改 Rust 存储协议、删除用户数据或操作远端网站;未进行原生 GUI/安装包验收,未手动触发重型 CI、桌面打包或发布。

@KraHsu KraHsu changed the title refactor: 收敛持续学习范围,移除网站发布并简化材料编辑 refactor: 聚焦持续学习并整理插件管理流程 Oct 30, 2026
@KraHsu KraHsu changed the title refactor: 聚焦持续学习并整理插件管理流程 refactor: 聚焦持续学习、统一插件体验并采用 AGPL Oct 31, 2026

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