lllin000_PaperForge/paperforge/worker
Research Assistant aeb89bd626 fix: close OCR figure and legend object gaps
Add figure legend completeness check ensuring every numbered formal
legend lands in an explicit outcome bucket (matched/held/ambiguous/
unresolved_cluster/unmatched). No legend may disappear without inventory
explanation.

Changes:
- Add compute_figure_legend_completeness() to ocr_figures.py
- Integrate completeness into build_figure_inventory() return value
- Add figure_legend_completeness fields to health report (ocr_health.py)
- Gaps degrade overall health status and add degraded reasons
- Add 9 new tests for completeness edge cases
2026-06-10 13:24:08 +08:00
..
__init__.py feat(prune): core orphan paper cleanup module 2026-05-18 21:48:18 +08:00
_domain.py chore: commit session work before hotfix switch 2026-05-18 22:47:30 +08:00
_progress.py docs(v1.4): commit planning artifacts, test files, and phase summaries for phases 13-19 2026-04-27 19:12:03 +08:00
_retry.py docs(v1.4): commit planning artifacts, test files, and phase summaries for phases 13-19 2026-04-27 19:12:03 +08:00
_utils.py feat: ocr reading-order fixes, single-source fulltext, redo closed-loop, release notes & manual 2026-06-01 18:12:31 +08:00
asset_index.py test: lock OCR phase2 figure inventory contract 2026-06-05 00:08:30 +08:00
asset_state.py style: ruff format pass across paperforge/ 2026-05-09 22:31:08 +08:00
base_views.py feat: add ocr_time frontmatter field — tracks last OCR completion time, shown in 重做OCR view 2026-06-01 15:36:11 +08:00
deep_reading.py test: lock OCR phase2 figure inventory contract 2026-06-05 00:08:30 +08:00
discussion.py chore: commit session work before hotfix switch 2026-05-18 22:47:30 +08:00
ocr.py feat: promote source-backed frontmatter anchors 2026-06-09 14:33:54 +08:00
ocr_artifacts.py fix: close structural convergence gaps — primary-path frontmatter anchor, health spine alignment, unresolved figure clusters, artifact cache cleanup 2026-06-08 00:24:54 +08:00
ocr_attach.py test: add OCR real-paper regression tests and cleanup 2026-06-10 12:36:15 +08:00
ocr_blocks.py refactor: reorder OCR anchor-first pipeline 2026-06-10 12:35:45 +08:00
ocr_decisions.py test: add OCR real-paper regression tests and cleanup 2026-06-10 12:36:15 +08:00
ocr_document.py fix: exclusion functions check seed_role when role is unassigned 2026-06-10 12:49:32 +08:00
ocr_emit.py docs: audit OCR production route and mark experimental modules 2026-06-08 12:13:07 +08:00
ocr_errors.py feat: classify OCR errors and degraded completions 2026-06-08 12:34:44 +08:00
ocr_evidence.py feat: add OCR evidence objects and paper-context summary 2026-06-05 12:15:51 +08:00
ocr_families.py test: add OCR real-paper regression tests and cleanup 2026-06-10 12:36:15 +08:00
ocr_figures.py fix: close OCR figure and legend object gaps 2026-06-10 13:24:08 +08:00
ocr_health.py fix: close OCR figure and legend object gaps 2026-06-10 13:24:08 +08:00
ocr_index.py fix: stabilize legacy OCR structure and metadata recovery 2026-06-05 13:34:43 +08:00
ocr_layout.py test: add OCR real-paper regression tests and cleanup 2026-06-10 12:36:15 +08:00
ocr_math.py fix: add relational-operator spacing and Greek-letter preservation to math normalization 2026-06-06 17:19:33 +08:00
ocr_metadata.py feat: promote source-backed frontmatter anchors 2026-06-09 14:33:54 +08:00
ocr_objects.py feat: tighten OCR figure validation matching 2026-06-09 21:13:53 +08:00
ocr_orchestrator.py test: add OCR real-paper regression tests and cleanup 2026-06-10 12:36:15 +08:00
ocr_pdf_spans.py test: add OCR real-paper regression tests and cleanup 2026-06-10 12:36:15 +08:00
ocr_profiles.py feat: partition OCR families inside zones 2026-06-09 17:49:52 +08:00
ocr_rebuild.py feat: promote source-backed frontmatter anchors 2026-06-09 14:33:54 +08:00
ocr_render.py fix: honor OCR display and frontmatter authority in render 2026-06-10 13:13:59 +08:00
ocr_roles.py fix: make non-body families authoritative against body flow 2026-06-10 13:00:44 +08:00
ocr_scores.py test: add OCR real-paper regression tests and cleanup 2026-06-10 12:36:15 +08:00
ocr_signatures.py fix: type OCR old-style references as reference markers 2026-06-10 12:41:39 +08:00
ocr_tables.py fix: preserve OCR reference and table boundaries 2026-06-09 22:29:43 +08:00
ocr_versions.py style: fix lint issues in legacy backfill code 2026-06-05 13:01:55 +08:00
paper_meta.py chore: commit session work before hotfix switch 2026-05-18 22:47:30 +08:00
paper_resolver.py chore: commit session work before hotfix switch 2026-05-18 22:47:30 +08:00
prune.py fix(sync): avoid prune crash when optional deps are missing 2026-05-31 20:55:17 +08:00
repair.py chore: commit session work before hotfix switch 2026-05-18 22:47:30 +08:00
status.py feat: classify OCR errors and degraded completions 2026-06-08 12:34:44 +08:00
sync.py feat: ocr reading-order fixes, single-source fulltext, redo closed-loop, release notes & manual 2026-06-01 18:12:31 +08:00
update.py chore: commit session work before hotfix switch 2026-05-18 22:47:30 +08:00
vector_db.py chore: commit session work before hotfix switch 2026-05-18 22:47:30 +08:00