lllin000_PaperForge/paperforge/worker
Research Assistant b1fdbc30eb feat: P0 fixes (ref sort, caption insert) + P1 figure containment render hygiene
P0:
- Fix 2: _ref_number_sort_key handles [N] bracket format (ocr_render.py:481)
- Fix 4: remove figure_caption from _INSERT_CANDIDATE_ROLES (ocr_document.py:3846)
- Fix 5: filter demoted body_paragraph from figure legends (ocr_figures.py:2950)

P1:
- figure containment render-hygiene pass after table inventory writeback
- 6 helpers: _cluster_bboxes_by_proximity, _is_contained,
  _highly_overlaps_any_matched_region, _figure_region_bbox,
  _matched_asset_keys, tag_figure_contained_text
- Wire call site in postprocess_ocr_result() (ocr.py:1891)

Infra:
- Sync workspace fulltext after rebuild (asset_index.py)
- Fix UnboundLocalError on index-refresh (sync_service.py)
- Add missing frontmatter fields to field registry (field_registry.yaml)
- 283 + 19 = 302 tests passing
2026-06-27 22:56:22 +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 ocr rebuild: add --resume checkpoint, fix garbled progress bar, remove debug print 2026-06-26 17:31:52 +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 feat: P0 fixes (ref sort, caption insert) + P1 figure containment render hygiene 2026-06-27 22:56:22 +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: P0 fixes (ref sort, caption insert) + P1 figure containment render hygiene 2026-06-27 22:56:22 +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 fix: normalize OCR heading newlines and fix single-word heading level 2026-06-25 16:14:32 +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 feat: P0 fixes (ref sort, caption insert) + P1 figure containment render hygiene 2026-06-27 22:56:22 +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 fix: reject weak isolated layout clusters 2026-06-22 22:15:12 +08:00
ocr_figure_reader.py fix: resolve figure_id collisions via name mutation 2026-06-26 18:36:04 +08:00
ocr_figures.py feat: P0 fixes (ref sort, caption insert) + P1 figure containment render hygiene 2026-06-27 22:56:22 +08:00
ocr_health.py fix: heading detection, backmatter, table consumed, footnote reorder, figure crop + audit fixtures 2026-06-22 01:28:55 +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_maintenance.py feat: dashboard Start Working cleanup, pf-copy click indicator, collection header revert, time sorting 2026-06-26 20:35:13 +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 fix: reuse rebuild metadata and object extraction work 2026-06-22 22:15:25 +08:00
ocr_objects.py fix: reuse shared PDF access during object extraction 2026-06-22 22:16:24 +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 fix: blue sidebar box not rendered as callout 2026-06-26 23:13:25 +08:00
ocr_profiles.py feat: partition OCR families inside zones 2026-06-09 17:49:52 +08:00
ocr_rebuild.py fix: blue sidebar box not rendered as callout 2026-06-26 23:13:25 +08:00
ocr_reference_signals.py fix: heading detection, backmatter, table consumed, footnote reorder, figure crop + audit fixtures 2026-06-22 01:28:55 +08:00
ocr_render.py feat: P0 fixes (ref sort, caption insert) + P1 figure containment render hygiene 2026-06-27 22:56:22 +08:00
ocr_roles.py fix: normalize OCR heading newlines and fix single-word heading level 2026-06-25 16:14:32 +08:00
ocr_scores.py fix: blue sidebar box not rendered as callout 2026-06-26 23:13:25 +08:00
ocr_signatures.py feat: extend PANEL_LABEL_PATTERN to match lowercase sub-panel labels (a)(b) 2026-06-17 19:25:47 +08:00
ocr_structural_gate.py fix: heading detection, backmatter, table consumed, footnote reorder, figure crop + audit fixtures 2026-06-22 01:28:55 +08:00
ocr_tables.py A1: caption consumed only when matched_asset exists 2026-06-25 22:24:57 +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