Skip to content

Releases: PapyrusOR/Papyrus_Desktop

v2.0.0-beta.3

28 Apr 10:46

Choose a tag to compare

v2.0.0-beta.3 Pre-release
Pre-release

Release Notes

Version: v2.0.0-beta.3
Date: 2026-04-28
Compare: origin/main...HEAD

[v2.0.0-beta.3] - 2026-04-28

⚠️ 公告

  1. 本版本为 beta 版本且由于时间限制未充分测试,可能遇到功能不可用情况,若发现 bug,请及时提供反馈,谢谢。
  2. 即日起至 v2.0.0 beta 测试结束,我们向用户开放 DeepSeek V4 Flash 模型,每人每天有 50w tokens 额度。
    使用方法:设置 → 聊天 → 供应商管理,启用 LiYuan For DeepSeek 即可使用,欢迎反馈,后续 DeepSeek V4 Pro 也将开放限时免费调用。
  3. 由于beta1属于前端重写版本,beta2属于后端重写版本,均已内部发布,为了便于区分并顺应开发节奏,本版本为beta3版本。
  4. 由于一些原因,使用本版本的用户请手动安装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;AccessibilityContextSmartTextArea / 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.pysrc/ai/*.pysrc/mcp/*.pytests/test_*.pytools/diagnose.pyrequirements.txtrun.pyw 均已删除。源码运行者现需使用 Node.js 24+ 替代 Python。
  • 旧版 Tk UI 已移除:无法回退到 Tk 版本。
  • 数据目录布局 现位于新的 paths.dataDir 下(默认 $HOME/PapyrusDataPAPYRUS_DATA_DIR);JSON 文件迁移路径会在首次启动时导入遗留的 cards.json / notes.json
  • MCP / API 认证:写操作强制要求 token;现有客户端必须在请求头中携带 ~/.papyrus/auth.token 中的认证令牌。

致谢
@Alpaca233114514
@ChimeHsia

v1.2.4

20 Mar 15:03
aee3848

Choose a tag to compare

v1.2.4

特性更新

  • 新增新建对话,历史对话功能
  • 支持文件,图片上传
  • 没有更新版本号

致谢

感谢@10and01 参与此次开发

v1.2.3

14 Mar 07:21

Choose a tag to compare

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

13 Mar 00:13

Choose a tag to compare

注意:由于一些原因,本版本及以下的工具调用功能均无法正常使用

v1.2.2

  • 修复 API Key 编码错误:解决 'latin-1' codec 无法编码中文字符的问题
  • 配置验证机制:在保存前检查 API Key 和 Base URL,阻止包含非法字符的配置
  • 三层防护:配置验证层、UI 提示层、请求兜底层
  • 改进错误提示:明确指出哪个提供商的哪个字段包含非法字符

致谢

感谢@Tsugu07 在v1.2.2更新期间提供的API相关反馈。
感谢@Meookq 在v1.2.1更新期间提供的反馈。

v1.2.1

12 Mar 13:21

Choose a tag to compare

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 requests

v1.2.1-beta+macOS.arm64

11 Mar 10:58

Choose a tag to compare

Pre-release

v1.2.1-beta+macOS.arm64

beta版本可能不稳定,请谨慎下载。

  • 新增Apple Silicon MacOS版本支持。(Mac版本暂时使用默认头像)

v1.2.1-beta

10 Mar 05:25

Choose a tag to compare

v1.2.1-beta Pre-release
Pre-release

v1.2.1-beta (2026-03-10)

beta版本可能不稳定,请谨慎安装。

Bug 修复

AI 设置保存问题

  • 修复提供商切换时模型不匹配问题

    • 切换提供商时自动验证当前模型是否兼容
    • 不兼容时自动切换到新提供商的第一个可用模型
    • 添加友好的提示信息,告知用户已自动切换
    • 防止提供商和模型不匹配导致的调用失败
  • 改进错误处理

    • 保存配置失败时显示具体错误信息
    • 提供商无可用模型时阻止保存并警告
    • 增强配置保存的健壮性

技术改进

  • 优化设置窗口的保存逻辑
  • 添加模型兼容性验证机制
  • 改进用户反馈提示

v1.2.0-beta

09 Mar 13:18

Choose a tag to compare

v1.2.0-beta Pre-release
Pre-release

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

07 Mar 15:00

Choose a tag to compare

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 文件时程序启动崩溃的问题

新增功能

  1. 图标容错处理
    init 方法中添加 try-except 包裹图标加载
    当 icon.ico 文件不存在时,程序会静默跳过,不再崩溃
    提升了程序的健壮性
  2. 智能备份系统
    新增 last_backup_time 属性追踪上次备份时间
    自动备份间隔优化为 1 小时,避免频繁备份影响性能
    普通保存操作:仅在距离上次备份超过 1 小时时自动创建备份
    重要操作(重置数据):强制立即备份
    手动创建备份:始终立即执行
    所有备份操作增加异常处理,失败时不影响主流程
  3. 定时检查管理
    新增 check_timer 属性管理定时检查任务
    在 next_card 方法中添加定时器取消逻辑,避免定时器累积

v1.0.1

22 Feb 14:20

Choose a tag to compare

Papyrus v1.0.1 Release Notes

修复与优化:

  • 优化界面配色。
  • 评分按钮增加 0.5 秒冷却期,防止误触。
  • 新增备份功能。
  • 新增菜单"创建备份"和"从备份恢复"。
  • 导入 TXT 时若无有效卡片,给出格式提示。

使用方法:
下载 Papyrus.exe 直接运行,无需安装。