- Upgrade Agent script check from directory existence to actual importability
- Fix doctor env var check: prefer PADDLEOCR_API_TOKEN over old names
- Support per-domain JSON export validation (not just library.json)
- Remove blanket tests/ exclusion from .gitignore
Both variables were assigned inside the try block but used after it.
If the try block threw before assignment, validated_error would be unbound
when line 2909 referenced it with done_incomplete status.
Also initialized validated_status = None for consistency since it could
also be unset if the try block fails before assignment.
- Replace direct meta.get('ocr_status') read with validate_ocr_meta() call
in run_deep_reading() to properly validate OCR completion status
- Fixes bug where meta.json with ocr_status=done but missing files
incorrectly marked paper as ready for deep reading
- validate_ocr_meta() checks 7 conditions before returning 'done':
file existence, sizes, page markers, etc.
- done_incomplete status is correctly treated as blocked (not ready)
by existing blocked logic at line 2810
- Add regression test: test_smoke_deep_reading_done_incomplete_is_blocked
- literature_pipeline: load_vault_config and pipeline_paths now
delegate to paperforge_lite.config, preserving public names
- ld_deep: _load_vault_config and _paperforge_paths now delegate
to shared resolver, preserving public names
- Both scripts require paperforge_lite package to be available
(via pip install or copied install in deployed vaults)
- Existing load_simple_env preserved for .env loading before dispatch
- Add 'update' subcommand to check and install updates from GitHub
- Support both git pull and zip download modes
- Auto-backup before update, auto-rollback on failure
- Protect user data (03_Resources/, 05_Bases/, .env, AGENTS.md)
- Add paperforge.json for version tracking
- Add standalone update.py as alternative entry point
- Fix 'all' worker to only run Lite workers
- Add missing imports (sys, tempfile, hashlib, subprocess, zipfile)