mirror of
https://github.com/lllin000/PaperForge.git
synced 2026-07-22 06:50:53 +00:00
3.8 KiB
3.8 KiB
Changelog
All notable changes to PaperForge.
1.5.8 (2026-05-19)
Memory Layer (New)
- SQLite + FTS5 database (
paperforge.db) for fast paper metadata lookup paperforge memory build/memory status/searchpaperforge agent-context— structured bootstrap for AI agentspaperforge dashboard— backed by SQLite (with file scan fallback)- Automatic rebuild after sync (fast-path when index hash unchanged)
- Runtime health computation with degraded-status reporting
- JS-native memory state reader (file-based, no Python exec polling)
Vector Embedding (New)
- ChromaDB-backed vector storage for OCR fulltext
paperforge embed build/embed status/embed stoppaperforge retrieve— semantic search across OCR chunks- API-only embedding (OpenAI-compatible), no local models
- Configurable API key/base/model via env, plugin settings, or
.env --resume/--forcebuild modes with persistent build state- Auto-trigger after OCR via background subprocess
Embedding Package Refactoring
- Extracted vector logic from
memory/vector_db.pyinto dedicatedembedding/package - Old modules converted to deprecated forwarding shims
- Removed sentence-transformers dependency (API-only)
- Model change auto-detection: resume mode detects model switch and triggers full rebuild
Orphan Paper Cleanup (New)
paperforge prune— detect and delete orphan workspaces (dry-run by default)sync --prune/sync --prune-force— integrate into sync pipeline- Automatic orphan detection after every sync with Obsidian modal popup
- Click-to-toggle selection with paper metadata (title, authors, year, PDF, collection)
Sync Performance
- Export hash check skips rebuild when BBT files unchanged (~24s → 0.1s)
canonical_index_hashin memory DB meta for fast rebuild skip- Removed redundant
refresh_papercalls from build loop
Plugin UI
- Tabbed settings: Installation + Features
- Runtime Health panel with manual sync button
- Memory Layer and Vector Embedding state machine UI
- Discussion card renders from
discussion.mdwithMarkdownRenderer - i18n: full Chinese/English translation for Features tab + orphan modal
- Vector DB config labeled as Experimental
Discussion System
- Changed from JSON to plain Markdown (
discussion.md) - Plugin renders last 3 Q&A pairs with collapsible long answers
Bug Fixes
get_collection()no longer silently deletes collection on error- nopdf OCR status resets to
pendingwhen PDF re-appears - Embed chunk_count now reports actual DB count, not incremental count
- Plugin: embed build survives settings tab close
- Plugin: fix runtime health sync path for first-launch migration
Infrastructure
release.yml/publish.yml— fixed tag pattern to match[0-9]*(novprefix)- Pre-commit JS syntax hook added
1.5.7 (2026-05-19)
Recovery release after 1.5.6 PyPI name conflict. All features listed under 1.5.8.
- Model change auto-detection in embed resume mode
- Orphan modal i18n completed (Chinese/English)
- CHANGELOG.md added
1.5.9 (2026-06-17)
OCR Tail Rendering Fixes
_reorder_tail_run: Addedskip_section_groupingparameter for tail pages with reference items but no explicit "References" heading. These pages now emit blocks in column-sorted order with refs grouped at end, preserving natural reading order._order_tail_blocks: Per-page detection of ref heading presence to activate the new path._normalize_backmatter_roles_after_boundary: Removed forcedbody_paragraph → backmatter_bodyconversion inside backmatter region (body paragraphs attach naturally via geometric ownership).- Synthetic ref section (Phase 2.5): Creates synthetic
ref_sectionwhen ref_items exist but no ref_heading, preventing ref scattering as orphans.
For upgrade: pip install --upgrade paperforge