Skip to content

Releases: LLLin000/PaperForge

1.5.5

13 May 16:42

Choose a tag to compare

v1.5.4

11 May 13:40

Choose a tag to compare

Full Changelog: v1.5.3...v1.5.4

v1.5.3

11 May 11:21

Choose a tag to compare

Full Changelog: v1.5.2...v1.5.3

v1.5.2

11 May 10:32

Choose a tag to compare

Full Changelog: v1.5.1...v1.5.2

v1.5.1

11 May 10:04

Choose a tag to compare

Hotfix + PyPI Support

PyPI

  • Package now published to PyPI as paperforge
  • Install: pip install paperforge==1.5.1 (no git required)
  • All install paths use PyPI-first with git fallback
  • CI auto-publish on tag push (.github/workflows/publish.yml)

Fixed

  • Py launcher ENOENT: Remove py from auto-detection, use python
  • Git not found: Detect git dir and inject into PATH before pip spawn
  • Git tag mismatch: All URLs use @v{version} format
  • Base filter: !zotero_key.isEmpty() keeps only formal notes
  • Update fallback: Zip download when pip/git fails
  • Diagnostic: Copy diagnostic now includes git/PATH/vault info

Removed

  • CI workflows (pending rewrite)

v1.5.0

10 May 16:25

Choose a tag to compare

v1.5.0 — Major Release (2026-05-10)

Dashboard v2 — "Quiet Research Desk"

  • Three-mode architecture: Global library snapshot, per-collection batch workspace, per-paper reading companion
  • Maillard / Morandi color palette: Warm browns and deep forest greens replace harsh defaults
  • Responsive layout: CSS Grid + container queries ensure perfect rendering at any sidebar width
  • SVG arrow expand/collapse: Text-free gradient containers replace old button labels
  • Unified component heights: Collection workflow stages now match global library snapshot pills
  • Collection header refinement: Tighter domain-to-card spacing, 28px domain title

Skill Redesign — "Router-First Architecture"

  • Single skill source: All agent platforms deploy a single literature-qa skill directory
  • Pluggable skill_deploy service: Shared deployment logic extracted from setup wizard
  • Narrowed trigger descriptions: Reduces false-match risk in multi-skill environments

Fixes & Compatibility

  • Zotero 7 BBT detection: Supports .xpi (Zotero 7) and unpacked directories (Zotero 6)
  • control_dir cleanup: Plugin no longer passes removed --control-dir CLI argument
  • setup_wizard stability: Fixed multiple NameError crashes in Phase 7 verification
  • PDF workspace detection: Any file in a paper workspace dir triggers per-paper mode
  • deep_reading_status: Frontmatter-first reading — finalize.py takes effect without sync
  • Zotero key extraction: Walk up directory tree — ai/discussion.md etc. trigger per-paper mode
  • Body template cleanup: New papers no longer duplicate status fields in body content

New Features

  • deep-finalize command: CLI for marking deep-reading completion and signaling the dashboard
  • Auto-deploy on update: Skills and AGENTS.md deploy when running paperforge update

v1.4.18 — macOS cross-platform support

10 May 03:26

Choose a tag to compare

v1.4.18 — 2026-05-10

Added

  • macOS 跨平台支持 (by @Chartreuse310): GUI Obsidian PATH 扩展、Homebrew/pyenv 优先、Apple CLT stub Python 跳过、Zotero Profiles/extensions/ BBT 检测、macOS Zotero.app 路径检测
  • src/testable.js: 测试函数独立模块,无 obsidian 依赖

Fixed

  • L3 Plugin Tests (vitest) 修复
  • BBT 检测支持非标准 Zotero 数据目录

Changed

  • 非 Windows pip install 自动加 --user
  • PaddleOCR Key 改为 CLI 参数传入

Special thanks to @Chartreuse310 for the macOS cross-platform fixes!

v1.4.17

09 May 18:05

Choose a tag to compare

v1.4.17 — 2026-05-10

Removed

  • control_dir 完全淘汰: doctor 不再检查 LiteratureControl 目录是否存在;setup 不再创建该目录或将其写入 paperforge.json--control-dir CLI 参数移除;所有安装向导文档同步更新

Changed

  • doctor UTF-8 编码修复: Windows 控制台输出中文不再乱码(sys.stdout.reconfigure + SetConsoleOutputCP
  • repair 按钮启用: Plugin dashboard 的 Repair Issues 按钮解除 disabled 状态

Fixed

  • repair 消息规范化: commands/repair.py 中 divergent 计数使用 len() 替代直接打印 list

v1.4.17rc1 以来的变更

Added

  • Upgrade migration safeguards: legacy flat notes migrated even without pre-existing canonical index; legacy do_ocr/analyze control flags preserved from library-records including explicit false values; already-migrated workspace notes reconciled on subsequent sync
  • Non-canonical filename migration: legacy files named only by key (LEG001.md) correctly migrate via frontmatter title
  • Plugin Dashboard: lifecycle-based Base views, doctor/repair/sync Quick Actions, per-paper + collection views, mode-aware UI
  • Canonical asset index: versioned JSON envelope, atomic writes (tempfile + os.replace), cross-process locking, incremental refresh
  • Doctor diagnostics: interpreter resolution, per-module dependency checks, Index Health section (PDF/OCR/Note/Asset)
  • Repair blind spots: 6 divergence types now all detected or explicitly warned
  • AI Discussion Recorder: /pf-end command for atomic append-only discussion recording
  • Copy Context: single-key and collection-filtered context output for AI consumption
  • Golden datasets: CLI contract tests with snapshot verification
  • Chaos testing: corruption, network failure, and filesystem error scenarios

Changed

  • Python >= 3.10 now required
  • TUI removed: Textual classes, imports, and dependency purged; paperforge setup without --headless shows redirect
  • Library-records fully deprecated: zero residual references in production code and 10 command file copies; paperforge status label now formal_notes not library_records
  • Config-resolved paths: 5 workspace-path index fields and 11 downstream consumers use user-configured literature_dir instead of hardcoded "Literature/"; env var typo PAPERFORGERATURE_DIR fixed to PAPERFORGE_LITERATURE_DIR
  • Index path integrity: fulltext_path and deep_reading_path in canonical index only advertised when backing files actually exist
  • Plugin: refactored to single-file main.js; reads config from paperforge.json not data.json
  • Setup wizard: modularized into 6 phase classes; incremental install flow; BRAT-compatible
  • Repair: calls build_index() after fixing artifacts, auto-rebuilds canonical index

Fixed

  • OCR state machine tests: ambient token isolation and write-through mocking restored
  • Cross-platform: bbt path normalization, e2e doctor test, backslash path test
  • Plugin: dashboard stats refresh, switching class cleanup, i18n keys, version detection
  • Deep-reading: anchors in main note (## 🔍 精读), removed separate deep-reading.md
  • Base views: lifecycle-based folder filters, line-ending normalization on Windows

Security

  • Module hardening: discussion.py — file locking (filelock), markdown character escaping, UTC timestamps; main.js — API key via environment variable not CLI args, createEl() instead of innerHTML; asset_state.py — workspace integrity checks before /pf-deep recommendation; status.py — empty dicts instead of null for JSON consumers

Merged milestones

v1.6 (AI-ready literature asset foundation) through v1.11 (merge gate remediation) consolidated into a single merge to master.


Hotfix 2026-05-10

Fixed

  • Base views 不再每次 sync 重新生成: ensure_base_views 现在仅在文件不存在时创建 .base 文件;已有文件只更新 folder filter,不触碰 views 结构,彻底解决 sync 后视图重复、列宽重置的问题
  • 列宽保留: merge_base_views 新增 widths 字段提取与注入,刷新 PF 视图时保留用户拖拽调整的列宽
  • test_setup_wizard 全修复: 移除已废弃的 control_dir 参数(5处)
  • test_doctor_runs: 修复 NoneType stdout 拼接
  • README: 补充 paperforge status 命令引用

v1.4.17rc4

09 May 09:05

Choose a tag to compare

v1.4.17rc4 Pre-release
Pre-release

v1.4.17rc4 — Milestone v2.1

Contract-driven architecture & engineering hardening. Full milestone: 5 phases (56-60), 29/29 requirements verified.

Highlights

  • PFResult contracts: All CLI commands now output stable {ok, command, version, data, error} JSON format
  • ErrorCode enum: Centralized error codes replacing scattered strings
  • Service Extraction: sync.py (1647 lines) decomposed into 3 adapters + SyncService
  • State Machine: PdfStatus/OcrStatus/Lifecycle enums with ALLOWED_TRANSITIONS validation
  • Field Registry: 44-field YAML schema + doctor validation detecting drift
  • Setup Modularization: setup_wizard.py (979 lines) → 6 focused classes
  • 173 tests passing, 0 regressions

New Modules

paperforge/core/, paperforge/adapters/, paperforge/services/, paperforge/setup/, paperforge/schema/, paperforge/doctor/

1.4.17rc3

08 May 11:18

Choose a tag to compare

1.4.17rc3 Pre-release
Pre-release

v1.12 installation & runtime closure preview

  • Plugin-first install: interpreter override, consistent subprocess resolution, Runtime Health UI
  • Stronger doctor: resolves plugin-matched interpreter, per-module dependency checks, clear verdict + next action
  • Dashboard workflow: OCR queue add/remove buttons, once-per-session privacy warning, full /pf-deep command copy
  • Deep-reading lives in main note only (no separate deep-reading.md)
  • Old docs removed (INSTALLATION.md, setup-guide.md)
  • Fix: dashboard stats now refresh after sync completes
  • Fix: redundant Run All Pending OCR button removed
  • Tests: 501 passed, 2 skipped