docs: restructure changelog - 1.5.7 as recovery, 1.5.8 as full release

This commit is contained in:
Research Assistant 2026-05-19 01:42:37 +08:00
parent 90fddfe967
commit 8022b47f41

View file

@ -1,26 +1,18 @@
# Changelog
All notable changes to PaperForge since 1.5.5.
All notable changes to PaperForge.
---
## 1.5.7 (2026-05-19)
> 1.5.6 was skipped due to a PyPI version name conflict.
## 1.5.8 (2026-05-19)
### Memory Layer (New)
- SQLite + FTS5 database (`paperforge.db`) for fast paper metadata lookup
- `paperforge memory build` — build from canonical index
- `paperforge memory status` — freshness, schema version, coverage
- `paperforge search` — FTS5 full-text search across papers
- `paperforge memory build` / `memory status` / `search`
- `paperforge agent-context` — structured bootstrap for AI agents
- `paperforge dashboard` — now backed by SQLite (with file scan fallback)
- `paperforge paper-status` / `paper-context` — per-paper status lookup
- `paperforge dashboard` — backed by SQLite (with file scan fallback)
- Automatic rebuild after sync (fast-path when index hash unchanged)
- `reading_log`, `project_log`, `paper_events` tables with JSONL persistence
- `paperforge reading-log` — validate/import/lookup commands
- `paperforge project-log` — record and render engineering session notes
- Runtime health computation with degraded-status reporting
- JS-native memory state reader (file-based, no Python exec polling)
@ -31,83 +23,65 @@ All notable changes to PaperForge since 1.5.5.
- `paperforge 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` flag for incremental build; `--force` for full rebuild
- Persistent build state (survives process restarts)
- `--resume` / `--force` build modes with persistent build state
- Auto-trigger after OCR via background subprocess
- Preflight check for dependency readiness
### Embedding Package Refactoring
- Extracted all vector logic from `memory/vector_db.py` into dedicated `embedding/` package:
- `_config.py`, `_chroma.py`, `build_state.py`, `builder.py`, `search.py`, `status.py`, `preflight.py`
- `providers/base.py` (ABC), `providers/openai_compatible.py`
- Old `memory/vector_db.py` and `worker/vector_db.py` converted to deprecated forwarding shims
- Extracted vector logic from `memory/vector_db.py` into dedicated `embedding/` 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)
- `--force` for interactive selection or batch delete
- `sync --prune` / `sync --prune-force` — integrate into sync pipeline
- Automatic orphan detection after every sync
- Obsidian modal popup with paper metadata (title, authors, year, PDF status, collection)
- Click-to-toggle selection, batch delete from modal
- Automatic orphan detection after every sync with Obsidian modal popup
- Click-to-toggle selection with paper metadata (title, authors, year, PDF, collection)
### Sync Performance
- Index rebuild: export hash check skips rebuild when BBT files unchanged (~24s → 0.1s)
- `canonical_index_hash` stored in memory DB meta table for fast rebuild skip
- Export hash check skips rebuild when BBT files unchanged (~24s → 0.1s)
- `canonical_index_hash` in memory DB meta for fast rebuild skip
- Removed redundant `refresh_paper` calls from build loop
- Phase timing logging in sync_service
### Plugin UI
- Tabbed settings: Installation + Features
- Runtime Health panel with sync timestamp + manual sync button
- Memory Layer status + rebuild button
- Vector Embedding: state machine UI with status/progress/stop
- Skills manager with collapsible groups (System/User)
- Agent platform selector with skill deployment
- Discussion card: renders from `discussion.md` with `MarkdownRenderer`
- i18n: full Chinese/English translation for Features tab
- Progressive disclosure: collapsible Advanced sections for Vector DB config
- Deduplicated Base views on every sync (fixed)
- Runtime Health panel with manual sync button
- Memory Layer and Vector Embedding state machine UI
- Discussion card renders from `discussion.md` with `MarkdownRenderer`
- 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 markdown rendering (tables, code, callouts)
- Long answers collapsed with expand-on-click
- Removed JSON writing from `discussion.py`
### Workflows & Skills
- New: `reading-log` skill with strict template validation
- New: `project-log` skill for engineering session records
- New: `methodology-extraction` skill (pure prompt)
- Unification: 6 workflows under single `paperforge` compound skill
- `bootstrap` — memory_layer field, verified tuple return
- 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 `pending` when PDF re-appears
- `has_deep_reading_content` import fixed in `asset_index.py` and `deep_reading.py`
- Memory rebuild no longer affects sync result code (best-effort only)
- Vector resume launches as silent background process (DEVNULL)
- Plugin: async pip install with persistent notice + UTF-8 fix
- Plugin: remove dead cascading keys, fix toggle content sync
- Plugin: cache memory/vector status to avoid re-check on tab switch
- 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
- Plugin: fix `--vault` flag ordering before subcommand
### Infrastructure
- `release.yml` — fix tag pattern to match `[0-9]*` (no `v` prefix)
- `publish.yml` — same pattern fix + skip-existing handling
- `release.yml` / `publish.yml` — fixed tag pattern to match `[0-9]*` (no `v` prefix)
- Pre-commit JS syntax hook added
- `versions.json` updated for all releases
---
## 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
---