Commit graph

28 commits

Author SHA1 Message Date
LLLin000
c76f1569aa feat(ocr-quality): add evaluate_readiness() with YAML policy evaluator
Adds readiness policy evaluator layer:
- load_readiness_policy() with deep-merge, importlib.resources, user override
- _resolve_field() dotted path resolver, _apply_op() operator matcher
- _check_hard_red() for hard-red rule evaluation
- evaluate_readiness() with weighted scoring + status determination
- compute_use_cases() for all 4 use cases (reading, qa, figure_table, chunking)
- Default YAML policy with weights, hard_red rules, use_case gates
- pyproject.toml: policies/*.yaml added to package-data
- 7 tests (B1-B7) covering all paths

17/17 tests pass (A10 + B7).
2026-07-04 23:28:06 +08:00
Research Assistant
9f95da3372 chore: remove sentence-transformers from [vector] extra 2026-05-18 17:24:29 +08:00
Research Assistant
482f3167e2 fix: update package-data from literature-qa to skills/paperforge/** 2026-05-14 22:58:03 +08:00
Research Assistant
c1e3668115 fix: remove ghost settings code, add vector deps, add embed preflight 2026-05-14 21:56:28 +08:00
Research Assistant
38dacbbf12 test(memory): add integration test for memory build/status workflow 2026-05-12 17:59:37 +08:00
Research Assistant
bbd39a90d3 v1.4.17rc4
Milestone v2.1: Contract-Driven Architecture & Engineering Hardening

- Stop the Bleeding: version sync checker, PyYAML hardening, install docs unification
- Contract Layer: PFResult/PFError dataclasses, ErrorCode enum, --json wrapping
- Service Extraction: sync.py decomposed into 3 adapters + SyncService
- State Machine: PdfStatus/OcrStatus/Lifecycle enums, transitions, field registry
- Setup Modularization: setup_wizard.py decomposed into 6 classes

173 tests passing, 0 regressions.
2026-05-09 17:05:07 +08:00
Research Assistant
ab7ac0d6ab feat(52-golden-datasets-cli-contracts): add CLI contract tests with snapshot integration
- tests/cli/ with conftest.py (cli_invoker, vault_builder, mock_ocr_backend fixtures)
- test_contract_helpers.py with normalize_snapshot, assert_valid_json, assert_json_shape
- 3 test files covering all 8 CLI commands (paths, status, sync, ocr, doctor,
  repair, context, setup) with exit code, output shape, and error contracts
- fixtures/ocr/mock_ocr_backend.py with 4 mock modes (success, pending, error, timeout)
- pyproject.toml: added pytest-snapshot, responses, pytest-timeout, pytest-mock,
  coverage; added testpaths and layer markers
- All 27 tests pass (CLI-01, CLI-02, CLI-03 satisfied)
2026-05-08 23:32:03 +08:00
Research Assistant
18b6f07ce6 chore(52-001): align manifest sources, bump minAppVersion to 1.9.0, add PyYAML dep
- Add clarifying comment in bump.py about canonical version source
- Update root and plugin manifest.json minAppVersion from 1.0.0 to 1.9.0
- Update versions.json compatibility mapping to 1.9.0
- Add pyyaml>=6.0 to pyproject.toml dependencies
2026-05-08 17:47:38 +08:00
Research Assistant
68e888a010 feat(48-textual-tui-removal): update CLI help and remove textual dependency
- Update setup parser help text (remove 'Textual-based' reference)
- Remove textual>=0.47.0 from pyproject.toml dependencies
- Remove textual from scripts/validate_setup.py required dict
2026-05-07 19:41:51 +08:00
Research Assistant
f47df7b8c2 chore: merge pyproject.toml packaging fix and upstream setup_wizard tests from release/v1.6-core-slice 2026-05-06 22:23:06 +08:00
Research Assistant
3486593a4e chore(23-01): add filelock>=3.13.0 dependency
- Added filelock>=3.13.0 to pyproject.toml dependencies
- Required for cross-process locking during index writes
2026-05-04 00:29:08 +08:00
Research Assistant
f5cb25aeb9 docs: add CC BY-NC-SA 4.0 license and acknowledgments 2026-05-01 11:37:50 +08:00
Research Assistant
2329e82588 fix: include styles.css in package data; prevent Unicode crash on pip output 2026-04-29 01:06:59 +08:00
Research Assistant
a9ba944ddc refactor: __init__.py as single version source; pyproject.toml reads dynamically; paperforge.json drops version field 2026-04-28 22:41:48 +08:00
Research Assistant
0dc27b7c2c chore: bump to v1.4.4 to unify all fixes under a single version 2026-04-28 22:34:41 +08:00
Research Assistant
40ee97c0f8 chore: bump to v1.4.3, update READMEs with multi-agent and plugin info 2026-04-28 19:43:58 +08:00
Research Assistant
b2fc9f1454 chore: bump version to 1.4.2 2026-04-28 14:33:35 +08:00
Research Assistant
859fa5ff97 feat: headless setup mode, Obsidian plugin, AI agent install guide (v1.4.2) 2026-04-28 14:33:35 +08:00
Research Assistant
ebc4fdeb00 chore: rename PaperForge Lite -> PaperForge across 27 files 2026-04-28 01:25:51 +08:00
Research Assistant
45f47a51b9 chore: bump version to 1.4.1 2026-04-28 00:49:00 +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
917a3b09cd chore: bump version to 1.4.0 for v1.4 release 2026-04-27 19:06:55 +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
59457d15c7 refactor(phase-9): rename paperforge_lite package to paperforge
- Rename directory: paperforge_lite/ → paperforge/
- Update pyproject.toml: package name, entry point, includes
- Verified: python -m paperforge --help works
2026-04-24 16:15:13 +08:00
Research Assistant
1d8478ce9c fix(wizard): auto-run pip install -e . and improve UX flow
- setup_wizard.py: _deploy() now calls pip install -e <repo_root> automatically
- DoneStep: removes manual 'pip install -e .' instruction (wizard handles it)
- README.md: removes separate pip install -r requirements.txt step
- docs/INSTALLATION.md: same pip install simplification
- pyproject.toml: add pytest ignore for nested sandbox vault
- tests/sandbox/: remove old vault/ (replaced by 00_TestVault/)
- tests/sandbox/README.md: update flow, wizard handles pip install
2026-04-23 20:49:10 +08:00
Research Assistant
9496382e81 feat(01-02): implement CLI launcher, packaging entry point, and shared config resolver
- paperforge_lite/cli.py: argparse CLI with global --vault, subcommands paths/status/selection-sync/index-refresh/deep-reading/ocr (ocr defaults to run action)
- paperforge_lite/__main__.py: python -m paperforge_lite fallback entry point
- paperforge_lite/config.py: shared resolver (load_vault_config, resolve_vault, paperforge_paths, paths_as_strings, load_simple_env) matching Plan 01 contract
- pyproject.toml: setuptools build, paperforge-lite package, Python >=3.10, dependencies from requirements.txt, [project.scripts] paperforge=paperforge_lite.cli:main
- paperforge_lite/__init__.py: package init (version 1.0.0)

CLI loads .env from vault root and <system_dir>/PaperForge/.env before worker dispatch, matching legacy pipeline behavior.
2026-04-23 11:44:26 +08:00