Releases: PapyrusOR/Papyrus_Desktop
v2.0.0-beta.3
Release Notes
Version: v2.0.0-beta.3
Date: 2026-04-28
Compare: origin/main...HEAD
[v2.0.0-beta.3] - 2026-04-28
⚠️ 公告
- 本版本为 beta 版本且由于时间限制未充分测试,可能遇到功能不可用情况,若发现 bug,请及时提供反馈,谢谢。
- 即日起至 v2.0.0 beta 测试结束,我们向用户开放 DeepSeek V4 Flash 模型,每人每天有 50w tokens 额度。
使用方法:设置 → 聊天 → 供应商管理,启用 LiYuan For DeepSeek 即可使用,欢迎反馈,后续 DeepSeek V4 Pro 也将开放限时免费调用。 - 由于beta1属于前端重写版本,beta2属于后端重写版本,均已内部发布,为了便于区分并顺应开发节奏,本版本为beta3版本。
- 由于一些原因,使用本版本的用户请手动安装fastify,hotfix版本将在稍后发布。
🚀 架构
后端
- TypeScript / Fastify on Node.js(原为 Python + FastAPI / Uvicorn)。单个 Node 运行时同时驱动 Electron、前端构建工具和 API。
- AI 子系统以 TypeScript 重写:provider 抽象、流式传输、工具调用、配置校验全部使用 TS。
- MCP 子系统以 TypeScript 重写:提供笔记/知识库 CRUD、搜索、索引的 REST 端点。
- 文件监听器(
chokidar)接入服务器,实现数据库/知识库变更的实时检测。 - SQLite3 替代旧的 JSON 文件夹存储;首次启动时自动迁移遗留的
cards.json/notes.json。
前端
- React 19 + TypeScript + Arco Design + Tailwind CSS 全面重写 —— 旧的 Tk/Electron-Tk 混合方案已移除。
- Electron v41 升级,支持窗口模式、启动画面、无边框窗口、自定义标题栏/状态栏。
- 路由与布局:App 外壳 + 侧边栏 + 二级侧边栏 + 可拖拽聊天面板。
- 共享基础设施:
useShortcuts/useScenery/useCompletion/useScrollNavigation/useWebSocket等 Hooks;AccessibilityContext;SmartTextArea/SearchBox/SectionNavigation/ChatHistory/ToolCallCard/ReasoningChain/SceneryBackground等组件。
🎉 新功能
全新页面体系
- 起始页:日期 / 节气主题 / 最近笔记 / 复习队列 / 卷轴入口
- 卷轴页:卷轴学习 + 卡片复习
- 笔记页:笔记查看器 + 关系图(RelationGraph / RelationsPanel)+ 文件夹树 + 大纲导航
- 聊天面板:可拖拽 + 模式切换 + 副侧边栏 + 模型 ID 显示 + 多会话 / 附件 / 会话重命名
- 设置页:二级菜单(外观与窗景合并、关于项内嵌)+ 设置侧边栏 + 悬停展开
- 文件库 / 扩展 / 图表页:完整新建页面
笔记编辑
- 笔记编辑底栏数据展示
- 锁定编辑模式
- Obsidian Vault 导入
- 关系图 / 关系面板
- 大纲导航
窗景(Backdrop)系统
- 起始页 / 数据页 / 文件库 / 扩展管理 / 设置页 全面接入窗景
- 卷轴风格窗景 demo
- 动态调色、透明度范围与实际渲染一致
笔记 / 卡片版本历史
- 每次更新自动按内容哈希存版本
- 回滚作为正向版本写入(无破坏性历史)
- 笔记与卡片独立的版本路由
AI / Provider 管理
- Provider / Model 管理 API + UI(增删改查、启用、设默认、下拉、侧边栏)
- 多 API Key 方案 + Key 选择
- Encrypted API Key 静态存储:AES-GCM + 每安装独立主密钥 + salt + auth tag
- Tool-call 审批流:手动 / 自动审批 + 待办队列 + 调用历史
- 模型 / 供应商图标系统(40+ providers / models:OpenAI、Anthropic、Gemini、Claude、Deepseek、Doubao、Grok、Llama/Meta、Mistral、Moonshot、Ollama、OpenRouter、Qwen、Tavily、Wenxin、Yuanbao、Zhipu、Minimax、Xiaomi MiMo、Nanobanana、Hugging Face、Cerebras、Cherry Studio、SiliconCloud、Stepfun、Vertex AI、Volcengine、Z.AI、Perplexity、Poe、Qiniu、Modelscope、NewAPI、NovelAI、NVIDIA、LM Studio、Infinigence、GitHub Copilot、Azure、Google Cloud、Alibaba Cloud、Baidu、ByteDance 等)
- Reasoning Chain 折叠展示
- 自动补全(max_token 统一长度)
- 流式输出 + WebSocket
- Markdown 渲染
头像 / 扩展
- 头像系统 + 自定义头像
- 扩展支持(含 Extension Template 示例)
- 笔记 / 卡片 / 数据界面 Markdown 支持
♿ 无障碍(WCAG 2.1 AA/AAA)
- 全局无障碍样式 frontend/src/a11y.css
- 设置面板:减少动画 / 高对比度 / 屏幕阅读器优化
- 完整 ARIA 属性 + 键盘导航 + Skip Link
- ScreenReaderAnnouncer 组件
- 字重 / 标题层级 / 卡片样式统一
- 配套文档:A11Y_IMPLEMENTATION / A11Y_SETTINGS / A11Y_VERIFICATION / ACCESSIBILITY_GUIDE / WCAG_AA_AAA_IMPLEMENTATION
🐛 Bug 修复
- Obsidian Vault 导入全平台 CI 通过:将脆弱的字符串前缀
home检查替换为操作系统级别的dev+ino遍历,修复了 Windows 8.3 短路径(RUNNER~1)、macOS/var↔/private/var别名、Linux/tmp不在$HOME下导致的失败。 - 服务端直接运行检测 在所有平台上正确识别打包后的主入口。
- API 测试隔离:集成测试不再跨文件共享状态;移除了不稳定的超时。
- 控制台噪音 已从日志和 AI Provider 测试中移除。
- TypeScript 迁移审计中暴露的多个 P0/P1/P2 后端 bug。
- 修复透明度范围与实际渲染不一致
- 修复返回顶部按钮入侵聊天框
- 修复顶栏飞出与报错不明显问题
- 修复模型 ID 同步问题
- 修复侧边栏跟随滚动的问题
- 修复 ChatView 不正常结束
- 修复多个 UI 与启动问题
- 修复 Electron 启动崩溃
🔒 安全
- 审计驱动的加固:安全审查中的 Critical/High 建议已解决。
frontend/与backend/的 CI 现已强制执行npm audit --omit=dev --audit-level=high。 - SSRF 防护:AI Base URL 校验拒绝云厂商的私有/回环地址(ollama / 本地部署仍允许)。
- 显式错误上报:错误不再静默吞掉 —— 消息中携带上下文,方便诊断。
- 路径遍历加固:笔记附件与 Obsidian 导入使用
dev+ino容器检查替代字符串比对。 - Auth Token:MCP/API 写操作强制要求 token;首次运行时生成并持久化。
- Rate Limiting:公共 API 表面已添加限流。
- API Key 静态加密(AES-GCM)。
- 修复审计报告中的 P0/P1/P2 级安全漏洞
- 放宽本地模型
base_url校验,支持常见本地部署标识(ollama 等) - 安全相关敏感文件移出版本库
🔧 构建与发布流水线
- 三平台 GitHub Actions 矩阵(Windows x64、macOS arm64、Linux x64),产出 NSIS 安装包 + 便携版、DMG + ZIP、AppImage + deb + tar.gz。
- Tag 推送自动触发(
v*):构建完成后自动创建带分类发布说明的 GitHub Draft Release。 - 生产依赖审计门禁:构建前强制执行。
- 后端 / 前端构建校验步骤:输出缺失时快速失败。
- 测试失败自动上传产物:CI 现在将
backend/test-output.log附加到失败运行,方便离线调试。 - Apple Developer 签名槽位已预留(注释状态)—— 有 Apple ID 后取消注释对应 env 即可。
- Electron Builder 缓存命中优化。
- macOS / Linux 包体积优化(解决体积膨胀)。
⚠️ 破坏性变更
- Python 后端已移除:
src/Papyrus.py、src/ai/*.py、src/mcp/*.py、tests/test_*.py、tools/diagnose.py、requirements.txt、run.pyw均已删除。源码运行者现需使用 Node.js 24+ 替代 Python。 - 旧版 Tk UI 已移除:无法回退到 Tk 版本。
- 数据目录布局 现位于新的
paths.dataDir下(默认$HOME/PapyrusData或PAPYRUS_DATA_DIR);JSON 文件迁移路径会在首次启动时导入遗留的cards.json/notes.json。 - MCP / API 认证:写操作强制要求 token;现有客户端必须在请求头中携带
~/.papyrus/auth.token中的认证令牌。
v1.2.4
v1.2.3
v1.2.3
功能更新:
- 添加了自带的日志监控器
bug修复:
- 修复了工具无法调用的问题
- 修复了模型ID不同步的问题
- 修复了幽灵文字纳入输入的问题(我直接删了)
开发者说
情况是这样的,beta版当时用的是Function Calling,其实这个功能我没测好,也不可用,但是因为是beta我就暂时没管。v1.2.1发布的时候我写了个MCP本地服务器集成在程序里,结果可能是提交的时候被git挤掉了,导致MCP文件并没有集成在正式版包里,自刎归天了。也就是说,过去几版中我们大力宣传的MCP工具调用:
从来都没有存在过。
领域展开,无量空包!
因此,我们发明了全新的面向俺寻思之力编程。事实上,您可以在AI完成命令下达后,假装AI完成了任务,并打开界面手动完成操作,这意味着您正式进入闪卡学习能工智人时代。
一刻也没有为被挤掉的MCP文件夹而哀悼,接下来赶到战场的是新的MCP文件夹!
现在我们修复了这个问题,并改进了工具调用逻辑,现在您可以丝滑的使用工具了。
祝您使用愉快,武运昌隆。
0315更新:接到反馈,v1.2.3的版本号没有换,但是我懒得改了;您使用的保证是v1.2.3版本,请放心使用。
致谢
感谢@Michel-Johnson 的反馈!
感谢@Tsugu07 关于没改版本号的反馈(0315)
v1.2.2
v1.2.1
v1.2.1
v1.2.1已更新,诚邀您迈入闪卡学习AI Agent时代!
1. SM-2 科学记忆算法
- 替换原有简单算法,采用经过验证的 SM-2 间隔重复算法
- 根据答题质量动态调整复习间隔
- 每张卡片独立的难度系数 (Easiness Factor)
- 完全向后兼容旧数据
2. AI 智能助手
- 主题:现代化的对话界面
- 纯对话模式:自然语言交互,无需记忆命令
- 上下文感知:AI 自动知道你在学习哪张卡片
3. 多模型支持
- OpenAI:GPT系列
- Anthropic:Claude Opus, Sonnet 等
- Ollama:本地运行,完全免费
- 自定义:支持任何兼容 OpenAI API 的服务
4. 完整的模型管理
- GUI 界面添加/编辑/删除模型
- 从 API 自动刷新模型列表
- 多提供商快速切换
- 参数精细调整(Temperature, Max Tokens)
5. AI 工具调用
- 创建/更新/删除卡片
- 搜索知识库
- 学习统计分析
- 操作审批机制,确保数据安全
6. 隐私保护
- API Key 在设置界面中隐藏显示(●●●)
- 数据本地存储,不上传云端
- 支持本地模型(Ollama),数据不出本地
7. 跨平台
- 新增Apple Silicon MacOS,Linux版本支持。(Mac,Linux版本暂时使用默认头像)
📦 安装说明
基础功能(无需额外依赖)
- SM-2 算法
- 卡片学习
- 数据管理
AI 功能(需要安装依赖)
pip install requestsv1.2.1-beta+macOS.arm64
v1.2.1-beta+macOS.arm64
beta版本可能不稳定,请谨慎下载。
- 新增Apple Silicon MacOS版本支持。(Mac版本暂时使用默认头像)
v1.2.1-beta
v1.2.1-beta (2026-03-10)
beta版本可能不稳定,请谨慎安装。
Bug 修复
AI 设置保存问题
-
修复提供商切换时模型不匹配问题
- 切换提供商时自动验证当前模型是否兼容
- 不兼容时自动切换到新提供商的第一个可用模型
- 添加友好的提示信息,告知用户已自动切换
- 防止提供商和模型不匹配导致的调用失败
-
改进错误处理
- 保存配置失败时显示具体错误信息
- 提供商无可用模型时阻止保存并警告
- 增强配置保存的健壮性
技术改进
- 优化设置窗口的保存逻辑
- 添加模型兼容性验证机制
- 改进用户反馈提示
v1.2.0-beta
Papyrus v1.2.0 beta: AI Agent现已可用
注意:beta版本可能存在不稳定现象,请谨慎升级。
🎉 主要更新
1. SM-2 科学记忆算法
- 替换原有简单算法,采用经过验证的 SM-2 间隔重复算法
- 根据答题质量动态调整复习间隔
- 每张卡片独立的难度系数 (Easiness Factor)
- 完全向后兼容旧数据
2. AI 智能助手
- 主题:现代化的对话界面
- 纯对话模式:自然语言交互,无需记忆命令
- 上下文感知:AI 自动知道你在学习哪张卡片
3. 多模型支持
- OpenAI:GPT系列
- Anthropic:Claude Opus, Sonnet 等
- Ollama:本地运行,完全免费
- 自定义:支持任何兼容 OpenAI API 的服务
4. 完整的模型管理
- GUI 界面添加/编辑/删除模型
- 从 API 自动刷新模型列表
- 多提供商快速切换
- 参数精细调整(Temperature, Max Tokens)
5. AI 工具调用
- 创建/更新/删除卡片
- 搜索知识库
- 学习统计分析
- 操作审批机制,确保数据安全
6. 隐私保护
- API Key 在设置界面中隐藏显示(●●●)
- 数据本地存储,不上传云端
- 支持本地模型(Ollama),数据不出本地
📦 安装说明
基础功能(无需额外依赖)
- SM-2 算法
- 卡片学习
- 数据管理
AI 功能(需要安装依赖)
pip install requests(临时guide已集成在docs文件夹中,日后会完善README)
v1.1.0
Papyrus v1.1.0 更新日志
Bug 修复
代码缩进错误修复
修复了 init 方法缩进错误导致的 AttributeError: 'PapyrusApp' object has no attribute 'load_data'
修复了多个方法(load_data, create_backup, save_data, next_card, reset_data)被错误嵌套在其他方法内部的问题
修复了 import_from_txt 方法中的缩进和结构问题
删除了重复的 resource_path 函数定义
修复了 load_data 方法中 if not self.cards: return 导致空数据时不初始化的逻辑问题
程序崩溃修复
修复了缺少 icon.ico 文件时程序启动崩溃的问题
新增功能
- 图标容错处理
在 init 方法中添加 try-except 包裹图标加载
当 icon.ico 文件不存在时,程序会静默跳过,不再崩溃
提升了程序的健壮性 - 智能备份系统
新增 last_backup_time 属性追踪上次备份时间
自动备份间隔优化为 1 小时,避免频繁备份影响性能
普通保存操作:仅在距离上次备份超过 1 小时时自动创建备份
重要操作(重置数据):强制立即备份
手动创建备份:始终立即执行
所有备份操作增加异常处理,失败时不影响主流程 - 定时检查管理
新增 check_timer 属性管理定时检查任务
在 next_card 方法中添加定时器取消逻辑,避免定时器累积
v1.0.1
Papyrus v1.0.1 Release Notes
修复与优化:
- 优化界面配色。
- 评分按钮增加 0.5 秒冷却期,防止误触。
- 新增备份功能。
- 新增菜单"创建备份"和"从备份恢复"。
- 导入 TXT 时若无有效卡片,给出格式提示。
使用方法:
下载 Papyrus.exe 直接运行,无需安装。