Commit graph

233 commits

Author SHA1 Message Date
Research Assistant
ebc4fdeb00 chore: rename PaperForge Lite -> PaperForge across 27 files 2026-04-28 01:25:51 +08:00
Research Assistant
ec1587febc fix: add exit button to setup wizard, fix Python version (3.8->3.10), remove outdated migration text 2026-04-28 01:24:28 +08:00
Research Assistant
e1b875c37c docs: restore ASCII logo, purge Chinese from English README 2026-04-28 01:20:32 +08:00
Research Assistant
30c81abac8 docs: add 'What PaperForge builds for you' pitch section (RAG/LLM knowledge base positioning) 2026-04-28 01:17:23 +08:00
Research Assistant
b967204558 docs: emphasize full pipeline workflow, remove v1.4 migration link from top level 2026-04-28 01:13:54 +08:00
Research Assistant
06c7a2e264 docs: restructure README with multi-language support (zh-CN + EN), add badges, pipeline diagram, categorized commands 2026-04-28 01:12:58 +08:00
Research Assistant
bcd0934117 docs: sync all doc references — README, INSTALLATION.md, AGENTS.md for v1.4.1 pip-first flow 2026-04-28 01:06:58 +08:00
Research Assistant
0a47a6e2ed docs: add comprehensive setup and usage guide 2026-04-28 01:03:23 +08:00
Research Assistant
31102a0ff2 docs: update README for v1.4.1 — pip-first install flow 2026-04-28 00:58:30 +08:00
Research Assistant
45f47a51b9 chore: bump version to 1.4.1 2026-04-28 00:49:00 +08:00
Research Assistant
97d090a5e3 refactor: rewrite prompt_deep_subagent.md to directive command style 2026-04-28 00:25:54 +08:00
Research Assistant
61df09c77f feat: add postprocess-pass2 molecule for validating Pass 2 output 2026-04-28 00:24:31 +08:00
Research Assistant
cc1f696ded feat: add fixed sub-headings to figure/table callout blocks in skeleton 2026-04-28 00:15:48 +08:00
Research Assistant
f650797054 docs: pf-deep skill refactoring implementation plan 2026-04-28 00:11:56 +08:00
Research Assistant
c4390f4124 docs: pf-deep skill refactoring design (atoms/molecules/compounds) 2026-04-27 23:56:55 +08:00
Research Assistant
d82fc52521 feat: persistent OCR poll until completion; fix OpenCode commands for pip install; fix test hangs; add command_files to package 2026-04-27 22:52:03 +08:00
Research Assistant
794b43224b fix: include skills prompt and chart-reading .md files in pip package-data 2026-04-27 21:41:47 +08:00
Research Assistant
0505fd2fda feat: add paperforge setup CLI command, one-click install script, sync __version__ to 1.4.0, detect local version from pip metadata 2026-04-27 21:34:03 +08:00
Research Assistant
94f00e990a fix: sync paperforge.json version to 1.4.0; fix update.py missing GITHUB_REPO/GITHUB_ZIP imports; remove PaperForge.base generation (duplicates Literature Hub) 2026-04-27 21:25:00 +08:00
Research Assistant
f31efec521 chore: remove PaperForge.base generation (duplicates Literature Hub) 2026-04-27 21:20:14 +08:00
Research Assistant
2bfbec691e fix: add zotero_dir to paperforge_paths() for PDF resolution; fix L3 diagnostic to skip schema check without file upload 2026-04-27 21:12:29 +08:00
Research Assistant
ee260e05f5 fix: L2 diagnostic accepts 400 as reachable (PaddleOCR rejects bare POST without fileUrl) 2026-04-27 20:41:49 +08:00
Research Assistant
13b3e142cc fix: OCR diagnostic L2 probe uses POST instead of GET (PaddleOCR rejects GET) 2026-04-27 20:34:47 +08:00
Research Assistant
a3270dc791 fix: add creators/extra to load_export_rows row dict, fix journal key lookup for first_author/journal/IF in library-records; add first_author, journal, impact_factor columns to Base views; fix PDF storage/ subdirectory resolution 2026-04-27 20:25:35 +08:00
Research Assistant
67a52a898a fix: VaultStep.__init__ missing step_id and checker in super() call 2026-04-27 19:49:36 +08:00
Research Assistant
c2a29a27d9 docs: update README for v1.4 — add structured logging, tqdm, retry, pre-commit; fix chart type count 14->19; update docs links 2026-04-27 19:17:35 +08:00
Research Assistant
2edb5b65cc docs(v1.4): commit planning artifacts, test files, and phase summaries for phases 13-19 2026-04-27 19:12:03 +08:00
Research Assistant
c9f31119ff docs: clear [Unreleased] section per Keep a Changelog convention after v1.4 release 2026-04-27 19:08:48 +08:00
Research Assistant
917a3b09cd chore: bump version to 1.4.0 for v1.4 release 2026-04-27 19:06:55 +08:00
Research Assistant
d521d9c50f docs(18-documentation-ux-polish): complete 18-02 plan — SUMMARY, STATE, ROADMAP 2026-04-27 18:07:29 +08:00
Research Assistant
40868620dc docs(18-documentation-ux-polish): create chart-reading INDEX.md and update ROADMAP.md
- Create chart-reading/INDEX.md listing all 19 guides ordered by biomedical commonness
- Update ROADMAP.md Phase 18 details with 2 plans (1 wave)
- Mark 18-01 as complete, update progress table to 2/1
2026-04-27 18:06:08 +08:00
Research Assistant
78bf95b818 docs(18-documentation-ux-polish): add ADR-012/013 and update AGENTS.md command table
- Add ADR-012 (Shared Utilities Extraction) and ADR-013 (Dual-Output Logging)
- Add command mapping table to AGENTS.md Section 1
- Add --verbose and auto_analyze_after_ocr notes to Section 5
- Add --verbose variants to all CLI examples in Section 8
- Add chart-reading INDEX.md cross-reference
- Update Section 11 with v1.4 migration guide link
2026-04-27 18:06:03 +08:00
Research Assistant
729ce990c7 docs(18-documentation-ux-polish): create MIGRATION-v1.4.md and fix README orphaned lines
- Create docs/MIGRATION-v1.4.md following v1.2 template structure
- Document all v1.3-to-v1.4 changes: dual-output logging, retry, pre-commit, auto_analyze_after_ocr
- Remove orphaned legacy code lines 102-104 from README.md
- Verify no other rendering issues in doc audit
2026-04-27 18:05:58 +08:00
Research Assistant
5713620c1d docs(18-documentation-ux-polish): complete 18-01 plan — SUMMARY, STATE, ROADMAP
Plan 18-01 adds auto_analyze_after_ocr config+OCR hook, creates
CHANGELOG.md (Keep a Changelog, v1.0-v1.4), and creates CONTRIBUTING.md
(dev setup, hooks, test workflow, architecture, conventions).

203 tests pass. 0 regressions.
2026-04-27 18:01:11 +08:00
Research Assistant
2096039e03 docs(DX-04): create CONTRIBUTING.md with dev setup and conventions
- Development setup instructions (pip install -e .[test])
- Pre-commit hooks setup and hook descriptions
- Test workflow with common pytest invocations
- Architecture overview (two-layer design, leaf module rule)
- Code conventions (10 rules: logging, imports, commit format, etc.)
- Pull request process and getting help section
2026-04-27 17:59:18 +08:00
Research Assistant
935a8fe7fb docs(DX-03): create CHANGELOG.md in Keep a Changelog format
- Add version history from v1.0.0 through v1.4.0 plus [Unreleased]
- Each version has Added, Changed, Fixed subsections with concise bullets
- Follows https://keepachangelog.com/en/1.1.0/ standards
- 162 lines covering initial MVP through current v1.4 code health release
2026-04-27 17:58:44 +08:00
Research Assistant
93713be21e feat(UX-01): add auto_analyze_after_ocr config and OCR hook
- Add auto_analyze_after_ocr: false to paperforge.json (opt-in, default off)
- Insert hook in ocr.py after ocr_status=done to set analyze:true when
  config is enabled
- Wrapped in try/except so a single failure does not abort OCR batch
- Uses read_json (already imported) and re.sub (already imported)
- Regex pattern matches existing frontmatter convention
2026-04-27 17:57:33 +08:00
Research Assistant
a27fada582 docs(18-documentation-ux-polish): create phase plan — 2 plans in 1 wave
Plan 18-01: Core Config & Foundation Docs (auto_analyze_after_ocr,
  CHANGELOG, CONTRIBUTING) — UX-01, DX-03, DX-04
Plan 18-02: Migration, Architecture & Doc Polish (MIGRATION-v1.4, ADRs,
  AGENTS table, INDEX, README fix, ROADMAP) — DOCS-01/02/03/04, UX-02/03/04
2026-04-27 17:55:57 +08:00
Research Assistant
e77f41f68c docs(17-dead-code-precommit): complete 17-01 plan — SUMMARY, STATE, ROADMAP 2026-04-27 17:42:33 +08:00
Research Assistant
7cccf4eefc refactor(17-dead-code-precommit): remove delegation wrappers and dead code, run ruff cleanup
- Remove def load_vault_config delegation wrappers from all 7 worker modules
- Add from paperforge.config import load_vault_config, paperforge_paths at module level
- Remove unused system_dir/resources_dir/control_dir extraction in pipeline_paths
- Fix sync.py intra-function imports (run_selection_sync, run_index_refresh)
- Fix repair.py import path for _resolve_formal_note_path (direct from _utils)
- Add ruff and pre-commit as test dependencies in pyproject.toml
- Configure per-file ruff ignores for pre-existing issues
- Run ruff check --fix + ruff format (353 + 58 issues auto-fixed)
- All 203 tests pass, ruff check zero warnings
2026-04-27 17:40:47 +08:00
Research Assistant
c08f86de0f feat(17-dead-code-precommit): add ruff config, pre-commit hooks, Check 5, and OCR error context
- Add [tool.ruff] section to pyproject.toml (target-version py310, rules E/F/I/UP/B/SIM)
- Create .pre-commit-config.yaml with 7 hooks (ruff lint+format, check-yaml, check-toml, end-of-file-fixer, trailing-whitespace, consistency-audit)
- Add Check 5 (check_duplicate_utils) to scripts/consistency_audit.py
- Add library_record field to OCR error meta.json (4 error paths in ocr.py)
2026-04-27 17:29:13 +08:00
Research Assistant
1d0b666d2c docs(17-dead-code-precommit): create 17-01 plan for dead code removal + pre-commit hooks
Single plan across 2 waves:
- Wave 1: ruff config, .pre-commit-config.yaml, Check 5, OBS-05
- Wave 2: ruff check --fix, delegation wrapper removal, test verification

Covers requirements CH-04, DX-01, DX-02, OBS-05.
2026-04-27 17:26:05 +08:00
Research Assistant
a8f0b5b348 docs(15-01): complete deep-reading queue merge plan
- SUMMARY.md: documents canonical scan_library_records() implementation
- STATE.md: updated position, metrics, and session continuity
- ROADMAP.md: Phase 15 marked complete (1 plan, 1 summary)
- REQUIREMENTS.md: CH-03 marked complete
2026-04-27 16:00:44 +08:00
Research Assistant
d472c30d6b feat(15-01): refactor deep_reading.py and ld_deep.py to use scan_library_records()
deep_reading.py:
- Added scan_library_records, _resolve_formal_note_path to _utils imports
- Replaced _resolve_formal_note_path body with re-export comment
- Replaced inline scan loop with scan_library_records() call
- Retained status sync, categorization, and report generation logic

ld_deep.py:
- Added module-level import from paperforge.worker._utils
- Replaced scan_deep_reading_queue() body with thin wrapper
- Wrapper filters deep_reading_status!=done and sorts by OCR/domain/key
- All processing pipeline tests pass (203/203)
2026-04-27 15:58:23 +08:00
Research Assistant
e24ef4ca6f feat(15-01): add scan_library_records() and _resolve_formal_note_path() to _utils.py
- Add _resolve_formal_note_path() with function-level paperforge_paths import
- Add scan_library_records() as pure data acquisition function
- Returns all D-03 fields: zotero_key, domain, title, analyze, do_ocr,
  deep_reading_status, ocr_status, note_path
- Uses same regex patterns as ld_deep.py for frontmatter extraction
- No side effects, no categorization, no sorting (caller's responsibility)
- Part of new '# --- Deep-Reading Queue ---' section
2026-04-27 15:55:07 +08:00
Research Assistant
99022b0948 docs(15-deep-reading-queue-merge): create 15-01 plan for canonical scan_library_records()
Phase 15 merges two divergent queue-scanning implementations (worker/deep_reading.py
and skills/ld_deep.py) into a single canonical scan_library_records() in _utils.py.
Plan 01: add shared function + refactor both callers. 2 tasks, 1 wave.
2026-04-27 15:52:57 +08:00
Research Assistant
0beb575c30 fix(13-logging-foundation): update test stubs and capsys→caplog for logging migration
- Add verbose=False to all stub function signatures in cli dispatch tests
- Switch test_verbose_output_printed from capsys to caplog since repair
  diagnostics now route through logging (stderr) not print (stdout)
2026-04-27 15:21:10 +08:00
Research Assistant
3a9256af82 docs(13-logging-foundation): complete 03-verbose-wiring plan
- SUMMARY.md created and self-verified
- STATE.md updated with position and metrics
- ROADMAP.md updated with plan progress (3/3 plans complete)
2026-04-27 15:18:08 +08:00
Research Assistant
f70ea85f9d feat(13-logging-foundation): wire verbose through sync/ocr/status commands
- commands/sync.py: pass verbose to run_selection_sync and run_index_refresh
- commands/ocr.py: pass verbose to run_ocr
- commands/status.py: pass verbose to run_status
- Pattern: verbose=getattr(args, 'verbose', False)
- deep.py and repair.py already had this wiring, no changes needed
2026-04-27 15:16:41 +08:00
Research Assistant
00692ef667 feat(13-logging-foundation): add verbose param to worker function signatures
- run_selection_sync(vault) -> run_selection_sync(vault, verbose=False)
- run_index_refresh(vault) -> run_index_refresh(vault, verbose=False)
- run_ocr(vault) -> run_ocr(vault, verbose=False)
- run_doctor(vault) -> run_doctor(vault, verbose=False)
- run_status(vault) -> run_status(vault, verbose=False)
- Backward compatible: default False preserves existing call sites
2026-04-27 15:15:43 +08:00