Releases: yimingwu425/C-Paper
Release list
C-Paper Native 6.0.7
C-Paper Native 6.0.7
C-Paper Native 6.0.7 is the current maintained macOS release of C-Paper. The active product line is now the native SwiftUI/AppKit app with a Swift-native backend.
Download
| Platform | File | Notes |
|---|---|---|
| macOS | C-Paper-Native-6.0.7-standalone-*.dmg |
Open the DMG and drag CPaperNative.app into Applications. |
What changed in 6.0.7
- 修复:PapaCambridge PDF 探测在源站拒绝 HEAD 时改用 GET 兜底,减少可下载文件被误判不可用
- 发布:RC 审计矩阵更新为 6.0.7,并防止旧版本 artifact 证据误导 release 判断
- CI:native workflow 与 release 文档检查纳入 RELEASE_CANDIDATE_AUDIT.md
Main features
- Search Cambridge International Education past papers by subject, year, and season.
- Preview PDFs inside the app, with local cache reuse when files already exist.
- Group question papers and mark schemes together for easier review.
- Build batch download queues across years, seasons, and paper numbers.
- Track download progress, completed items, failed items, and cancellation state.
- Save local settings such as download directory, proxy URL, data source, rate, concurrency, duplicate-file handling, and favorite subjects.
Install notes
macOS may show a developer verification warning on first launch. If that happens, right-click CPaperNative.app, choose Open, and confirm.
Architecture note
This release is for the native macOS line:
macos/: SwiftUI/AppKit desktop client and Swift-native backendlegacy/python-backend/: archived Python bridge/backend reference
The old Python + pywebview implementation remains archived under legacy/pywebview/ and is not the active product line.
Verification
The release workflow builds the native app, packages a standalone DMG, verifies the DMG, mounts it, checks the app bundle and Applications symlink, and then publishes this GitHub Release.
Disclaimer
C-Paper is a local desktop search and download helper. It does not own, host, or redistribute Cambridge International Education papers. Data availability depends on the third-party source used by the app.
C-Paper Native 6.0.6
C-Paper Native 6.0.6
C-Paper Native 6.0.6 is the current maintained macOS release of C-Paper. The active product line is now the native SwiftUI/AppKit app with a Swift-native backend.
Download
| Platform | File | Notes |
|---|---|---|
| macOS | C-Paper-Native-6.0.6-standalone-*.dmg |
Open the DMG and drag CPaperNative.app into Applications. |
What changed in 6.0.6
- 下载:阶段式原子写入 + 会话恢复,断电 / 取消不会再留下半截 PDF
- 下载:HTTP 429 解析为独立限流错误,与网络错误分开,冷却结束后自动续传
- 下载:熔断器 + 限流 + 跨进程会话恢复,并发批量下载更稳
- 数据源:SourceRegistry 12s 单源超时,自动回退不再被一个慢源卡住
- 数据源:手动模式不再静默回退,失败时明确提示所选源不可用
- 数据源:搜索返回 usedAutomaticFallback 与每源尝试日志,UI 顶部条提示回退情况
- 更新:自动检查 + 下载 DMG + 下载完成自动打开,丢失 / 损坏 / 需手动打开分别提示
- 诊断:错误自动写盘到 ~/Library/Application Support/C-Paper/Support/,并自动打码凭据 / token / sig
- 诊断:菜单与根 alert 都有「复制最近诊断 / 显示支持文件夹」入口,模态错误状态下仍可用
- UI:下载中心(可重试 / 需修复 / 已完成分类 + 完整性检查)
- UI:RootView 三态机(loading / ready / failed),启动失败页支持重试与诊断导出
- UI:完整中文主菜单(13 个命令),就绪 UI 出现前后行为一致
- 测试:5 个新套件(CircuitBreaker / DownloadSessionStore / StagedFileSystem / RenderedWorkflowInteraction / WorkflowPresentation) + 全部 WorkflowStateModels Codable 覆盖
- 修复:scripts/check_release_docs.sh 与 scripts/run_native_release_audit.sh 在 C / POSIX locale 下因中文 raise() 触发 invalid multibyte 错误崩溃的问题
Main features
- Search Cambridge International Education past papers by subject, year, and season.
- Preview PDFs inside the app, with local cache reuse when files already exist.
- Group question papers and mark schemes together for easier review.
- Build batch download queues across years, seasons, and paper numbers.
- Track download progress, completed items, failed items, and cancellation state.
- Save local settings such as download directory, proxy URL, data source, rate, concurrency, duplicate-file handling, and favorite subjects.
Install notes
macOS may show a developer verification warning on first launch. If that happens, right-click CPaperNative.app, choose Open, and confirm.
Architecture note
This release is for the native macOS line:
macos/: SwiftUI/AppKit desktop client and Swift-native backendlegacy/python-backend/: archived Python bridge/backend reference
The old Python + pywebview implementation remains archived under legacy/pywebview/ and is not the active product line.
Verification
The release workflow builds the native app, packages a standalone DMG, verifies the DMG, mounts it, checks the app bundle and Applications symlink, and then publishes this GitHub Release.
Disclaimer
C-Paper is a local desktop search and download helper. It does not own, host, or redistribute Cambridge International Education papers. Data availability depends on the third-party source used by the app.
C-Paper Native 6.0.5
C-Paper Native 6.0.5
C-Paper Native 6.0.5 is the current maintained macOS release of C-Paper. The active product line is now the native SwiftUI/AppKit app with a Swift-native backend.
Download
| Platform | File | Notes |
|---|---|---|
| macOS | C-Paper-Native-6.0.5-standalone-*.dmg |
Open the DMG and drag CPaperNative.app into Applications. |
What changed in 6.0.5
- 下载队列新增 HTTP 429 全局冷却与自动重试,避免批量下载时大面积失败
- 下载页现在直接显示保存目录,并提供显示文件夹入口与更诚实的处理进度摘要
- 自动更新下载现在显示保存位置与进度,下载完成后会自动打开 DMG,失败时保留手动打开提示
- 科目选择改为可搜索弹层,不再展开成超长菜单,并默认保持“选择科目”未选状态
Main features
- Search Cambridge International Education past papers by subject, year, and season.
- Preview PDFs inside the app, with local cache reuse when files already exist.
- Group question papers and mark schemes together for easier review.
- Build batch download queues across years, seasons, and paper numbers.
- Track download progress, completed items, failed items, and cancellation state.
- Save local settings such as download directory, proxy URL, data source, rate, concurrency, duplicate-file handling, and favorite subjects.
Install notes
macOS may show a developer verification warning on first launch. If that happens, right-click CPaperNative.app, choose Open, and confirm.
Architecture note
This release is for the native macOS line:
macos/: SwiftUI/AppKit desktop client and Swift-native backendlegacy/python-backend/: archived Python bridge/backend reference
The old Python + pywebview implementation remains archived under legacy/pywebview/ and is not the active product line.
Verification
The release workflow builds the native app, packages a standalone DMG, verifies the DMG, mounts it, checks the app bundle and Applications symlink, and then publishes this GitHub Release.
Disclaimer
C-Paper is a local desktop search and download helper. It does not own, host, or redistribute Cambridge International Education papers. Data availability depends on the third-party source used by the app.
C-Paper Native 6.0.4
C-Paper Native 6.0.4
C-Paper Native 6.0.4 is a native macOS polish release focused on making the menu bar feel like a real first-class desktop app.
Download
| Platform | File | Notes |
|---|---|---|
| macOS | C-Paper-Native-6.0.4-standalone-*.dmg |
Open the DMG and drag CPaperNative.app into Applications. |
What Changed
- Added a complete Chinese macOS menu bar with
C-Paper,文件,编辑,显示,窗口, and帮助. - Routed menu actions into the ready-state app flow for settings, update checking, route switching, diagnostics, and support access.
- Installed the AppKit main menu during startup before the first window becomes interactive, while keeping the existing manual
NSApplicationlifecycle. - Unified save-directory validation so menu actions and app behavior share the same path usability rules and Chinese error messaging.
- Added AppKit menu, startup, and binding tests, then validated the release build and final menu-bar QA on macOS.
Verification
swift test --jobs 1bash scripts/check_version_drift.shCONFIGURATION=release bash scripts/build_native_dmg.sh
Privacy And Disclaimer
C-Paper is a local desktop helper. It does not upload user data and does not own, host, or redistribute Cambridge International Education papers or mark schemes. Downloaded materials come from third-party public sources and remain subject to their original copyright and availability constraints.
C-Paper Native 6.0.3
C-Paper Native 6.0.3
C-Paper Native 6.0.3 is the current maintained macOS release of C-Paper. The active product line is now the native SwiftUI/AppKit app with a Swift-native backend.
Download
| Platform | File | Notes |
|---|---|---|
| macOS | C-Paper-Native-6.0.3-standalone-*.dmg |
Open the DMG and drag CPaperNative.app into Applications. |
What changed in 6.0.3
- 修复 Swift native 批量下载中熔断器打开后重试轮次被立即耗尽的问题
- 下载管理器现在会等待熔断器 recovery timeout 后再重新入队失败任务
- 科目选择控件改为统一 glass 风格,不再出现割裂的系统蓝色 popup
- 移除 Python bridge 时代的本地/原生后端连接提示
- 设置页新增关于我们、手动检查更新和启动检查更新,支持在应用内下载最新 DMG
Main features
- Search Cambridge International Education past papers by subject, year, and season.
- Preview PDFs inside the app, with local cache reuse when files already exist.
- Group question papers and mark schemes together for easier review.
- Build batch download queues across years, seasons, and paper numbers.
- Track download progress, completed items, failed items, and cancellation state.
- Save local settings such as download directory, proxy URL, data source, rate, concurrency, duplicate-file handling, and favorite subjects.
Install notes
macOS may show a developer verification warning on first launch. If that happens, right-click CPaperNative.app, choose Open, and confirm.
Architecture note
This release is for the native macOS line:
macos/: SwiftUI/AppKit desktop client and Swift-native backendlegacy/python-backend/: archived Python bridge/backend reference
The old Python + pywebview implementation remains archived under legacy/pywebview/ and is not the active product line.
Verification
The release workflow builds the native app, packages a standalone DMG, verifies the DMG, mounts it, checks the app bundle and Applications symlink, and then publishes this GitHub Release.
Disclaimer
C-Paper is a local desktop search and download helper. It does not own, host, or redistribute Cambridge International Education papers. Data availability depends on the third-party source used by the app.
C-Paper Native 6.0.2
C-Paper Native 6.0.2
C-Paper Native 6.0.2 is the current maintained macOS release of C-Paper. The active product line is now the native SwiftUI/AppKit app with a Swift-native backend.
Download
| Platform | File | Notes |
|---|---|---|
| macOS | C-Paper-Native-6.0.2-standalone-*.dmg |
Open the DMG and drag CPaperNative.app into Applications. |
What changed in 6.0.2
- 修复 Frankcie 科目接口不可用时 Swift 原生 app 无法进入备用数据源的问题
- 自动科目列表现在可通过 EasyPaper/PastPapers fallback 填充,搜索和批量下载也支持手动输入 4 位科目代码
- 下载历史重新接入 Swift 下载流程,重复文件 skip/missing 行为对齐归档 Python 后端
- 修正设置页数据源自动顺序文案:Frankcie、EasyPaper、PastPapers、PapaCambridge
- 增强 live source smoke tests,覆盖备用科目入口和 EasyPaper 瞬时 TLS/握手抖动重试
Main features
- Search Cambridge International Education past papers by subject, year, and season.
- Preview PDFs inside the app, with local cache reuse when files already exist.
- Group question papers and mark schemes together for easier review.
- Build batch download queues across years, seasons, and paper numbers.
- Track download progress, completed items, failed items, and cancellation state.
- Save local settings such as download directory, proxy URL, data source, rate, concurrency, duplicate-file handling, and favorite subjects.
Install notes
macOS may show a developer verification warning on first launch. If that happens, right-click CPaperNative.app, choose Open, and confirm.
Architecture note
This release is for the native macOS line:
macos/: SwiftUI/AppKit desktop client and Swift-native backendlegacy/python-backend/: archived Python bridge/backend reference
The old Python + pywebview implementation remains archived under legacy/pywebview/ and is not the active product line.
Verification
The release workflow builds the native app, packages a standalone DMG, verifies the DMG, mounts it, checks the app bundle and Applications symlink, and then publishes this GitHub Release.
Disclaimer
C-Paper is a local desktop search and download helper. It does not own, host, or redistribute Cambridge International Education papers. Data availability depends on the third-party source used by the app.
C-Paper Native 6.0.1
C-Paper Native 6.0.1
C-Paper Native 6.0.1 is the current maintained macOS release of C-Paper. The active product line is now the native SwiftUI/AppKit app with a Swift-native backend.
Download
| Platform | File | Notes |
|---|---|---|
| macOS | C-Paper-Native-6.0.1-standalone-*.dmg |
Open the DMG and drag CPaperNative.app into Applications. |
What changed in 6.0.1
- 修复 6.0.0 中非 Frankcie 数据源只是通用 HTML skeleton 的问题,改为 PapaCambridge、PastPapers、EasyPaper 独立 provider
- EasyPaper 使用真实加密 dir_v3 API,并在下载前刷新短期 token
- PastPapers 使用真实 CAIE relPath / 静态 PDF 结构,目录页被 Cloudflare challenge 时进行 best-effort 直链探测
- PapaCambridge 使用真实 session path 和 direct upload URL 验证;被 Cloudflare 拦截时明确报告暂不可用
- 手动选择不可用数据源时明确提示失败,不再返回空成功
- 修复 native DMG 打包时 extended attributes 导致的 strict codesign warning
Main features
- Search Cambridge International Education past papers by subject, year, and season.
- Preview PDFs inside the app, with local cache reuse when files already exist.
- Group question papers and mark schemes together for easier review.
- Build batch download queues across years, seasons, and paper numbers.
- Track download progress, completed items, failed items, and cancellation state.
- Save local settings such as download directory, proxy URL, data source, rate, concurrency, duplicate-file handling, and favorite subjects.
Install notes
macOS may show a developer verification warning on first launch. If that happens, right-click CPaperNative.app, choose Open, and confirm.
Architecture note
This release is for the native macOS line:
macos/: SwiftUI/AppKit desktop client and Swift-native backendlegacy/python-backend/: archived Python bridge/backend reference
The old Python + pywebview implementation remains archived under legacy/pywebview/ and is not the active product line.
Verification
The release workflow builds the native app, packages a standalone DMG, verifies the DMG, mounts it, checks the app bundle and Applications symlink, and then publishes this GitHub Release.
Disclaimer
C-Paper is a local desktop search and download helper. It does not own, host, or redistribute Cambridge International Education papers. Data availability depends on the third-party source used by the app.
C-Paper Native 6.0.0
C-Paper Native 6.0.0
C-Paper Native 6.0.0 is the current maintained macOS release of C-Paper. The active product line is now the native SwiftUI/AppKit app with a Swift-native backend.
Download
| Platform | File | Notes |
|---|---|---|
| macOS | C-Paper-Native-6.0.0-standalone-*.dmg |
Open the DMG and drag CPaperNative.app into Applications. |
What changed in 6.0.0
- 后端完全改为 Swift 原生实现,不再依赖 Python bridge
- 新增模块化 Swift 后端:数据源、解析、网络、下载、持久化和迁移
- 支持 Frankcie、PapaCambridge、PastPapers、EasyPaper 多数据源自动 fallback
- 设置页支持手动切换数据源
- 本地数据迁移到 macOS Application Support,并兼容旧 ~/.cie_cache 设置、收藏和下载历史
Main features
- Search Cambridge International Education past papers by subject, year, and season.
- Preview PDFs inside the app, with local cache reuse when files already exist.
- Group question papers and mark schemes together for easier review.
- Build batch download queues across years, seasons, and paper numbers.
- Track download progress, completed items, failed items, and cancellation state.
- Save local settings such as download directory, proxy URL, data source, rate, concurrency, duplicate-file handling, and favorite subjects.
Install notes
macOS may show a developer verification warning on first launch. If that happens, right-click CPaperNative.app, choose Open, and confirm.
Architecture note
This release is for the native macOS line:
macos/: SwiftUI/AppKit desktop client and Swift-native backendlegacy/python-backend/: archived Python bridge/backend reference
The old Python + pywebview implementation remains archived under legacy/pywebview/ and is not the active product line.
Verification
The release workflow builds the native app, packages a standalone DMG, verifies the DMG, mounts it, checks the app bundle and Applications symlink, and then publishes this GitHub Release.
Disclaimer
C-Paper is a local desktop search and download helper. It does not own, host, or redistribute Cambridge International Education papers. Data availability depends on the third-party source used by the app.
C-Paper Native 5.2.3
C-Paper Native 5.2.3
C-Paper Native 5.2.3 is the current maintained macOS release of C-Paper. The active product line is now the native SwiftUI/AppKit app, backed by the Python JSON-lines bridge and shared Python backend.
Download
| Platform | File | Notes |
|---|---|---|
| macOS | C-Paper-Native-5.2.3-standalone-*.dmg |
Open the DMG and drag CPaperNative.app into Applications. |
What changed in 5.2.3
- 修复非最大化窗口下 PDF 预览挤压与溢出
- 改进 PDF 预览在窗口缩放后的自动适配
- 下载队列和批量下载页在最小窗口高度下可滚动查看完整内容
Main features
- Search Cambridge International Education past papers by subject, year, and season.
- Preview PDFs inside the app, with local cache reuse when files already exist.
- Group question papers and mark schemes together for easier review.
- Build batch download queues across years, seasons, and paper numbers.
- Track download progress, completed items, failed items, and cancellation state.
- Save local settings such as download directory, proxy URL, rate, concurrency, duplicate-file handling, and favorite subjects.
Install notes
macOS may show a developer verification warning on first launch. If that happens, right-click CPaperNative.app, choose Open, and confirm.
Architecture note
This release is for the native macOS line:
macos/: SwiftUI/AppKit desktop clientbridge/: Python bridge used by the native appbackend/: shared Python backend for search, parsing, caching, downloads, and updates
The old Python + pywebview implementation remains archived under legacy/pywebview/ and is not the active product line.
Verification
The release workflow builds the native app, packages a standalone DMG, verifies the DMG, mounts it, checks the app bundle and Applications symlink, and then publishes this GitHub Release.
Disclaimer
C-Paper is a local desktop search and download helper. It does not own, host, or redistribute Cambridge International Education papers. Data availability depends on the third-party source used by the app.
C-Paper Native 5.2.2
C-Paper Native 5.2.2
C-Paper Native 5.2.2 is the current maintained macOS release of C-Paper. The active product line is now the native SwiftUI/AppKit app, backed by the Python JSON-lines bridge and shared Python backend.
Download
| Platform | File | Notes |
|---|---|---|
| macOS | `C-Paper-Native-5.2.2-standalone-*.dmg` | Open the DMG and drag `CPaperNative.app` into `Applications`. |
What changed in 5.2.2
- Fixed native download polling so the app does not cancel and recreate the active polling task while downloads are still running.
- Added safer enabled/disabled states for search-result downloads and batch downloads.
- Tightened the inline PDF preview layout so the preview header, action buttons, and PDF area fit cleanly inside the search and batch result panels.
- Updated native/backend release metadata to 5.2.2.
Main features
- Search Cambridge International Education past papers by subject, year, and season.
- Preview PDFs inside the app, with local cache reuse when files already exist.
- Group question papers and mark schemes together for easier review.
- Build batch download queues across years, seasons, and paper numbers.
- Track download progress, completed items, failed items, and cancellation state.
- Save local settings such as download directory, proxy URL, rate, concurrency, duplicate-file handling, and favorite subjects.
Install notes
macOS may show a developer verification warning on first launch. If that happens, right-click `CPaperNative.app`, choose Open, and confirm.
Architecture note
This release is for the native macOS line:
- `macos/`: SwiftUI/AppKit desktop client
- `bridge/`: Python bridge used by the native app
- `backend/`: shared Python backend for search, parsing, caching, downloads, and updates
The old Python + pywebview implementation remains archived under `legacy/pywebview/` and is not the active product line.
Verification
The release workflow builds the native app, packages a standalone DMG, verifies the DMG, mounts it, checks the app bundle and Applications symlink, and then publishes this GitHub Release.
Disclaimer
C-Paper is a local desktop search and download helper. It does not own, host, or redistribute Cambridge International Education papers. Data availability depends on the third-party source used by the app.