Commit graph

29 commits

Author SHA1 Message Date
LLLin000
4c788b8288 revert: undo two adversarial-review changes to _recover_figure_heading_prefix, record issue in project/
Reverts 5e1040b (bbox bound) and f5f8294 (multi-column scan).
Original single-next-line check restored.
Issue documented: project/current/pending-issues/media-asset-caption-prefix-multi-column.md
2026-07-03 02:12:50 +08:00
LLLin000
1791edd7cd docs: record round 2 truth audit + 3 bug fixes for 37LK5T97 2026-07-02 15:02:42 +08:00
LLLin000
5af3a1f8ca feat: asset-internal figure number recovery for rotated vector figures
adds a metadata-only recovery pass that scans matched figure assets for
internal PDF line labels ("Figure N.", "Fig. N:") when the figure lacks
a figure_number.

new components:
- extract_pdf_lines_normalized() in ocr_pdf_spans.py — reads PDF rawdict
  lines page-by-page, normalizes coordinates to OCR space
- _recover_missing_figure_numbers_from_assets() — inventory pass between
  synthetic fallback and dedup
- _needs_asset_internal_figure_number_recovery() — gate supporting both
  synthetic_figure and figure_unknown entries
- _looks_like_internal_figure_label() — regex-based label detection
- _asset_edge_band_score() — geometric rejection for center-positioned
  lines or lines covering >15% asset area
- page_pdf_lines_by_page parameter added to build_figure_inventory()

verification: U746UJ7G figure_unknown_000 -> figure_002 with recovered
label "Plot of Criteria Time". 428 regression tests pass (6 new).
2026-07-02 03:00:33 +08:00
LLLin000
d41712d7bc fix: normalize rotated figure captions before normal matching
- preserve PyMuPDF dir/wmode in span_metadata and bump span backfill version
- promote rotated vision_footnote figure descriptions into normal legend prematch
- normalize rotated caption/asset regions before score_figure_match
- carry rotation_correction_deg into matched figures and cropped renders
- use LANCZOS resampling on rotated figure crops to avoid aliasing
- keep synthetic fallback as last resort, reusing the same rotation metadata
2026-07-02 02:28:56 +08:00
LLLin000
03d2bcafdb docs: update project records for 3 audit fix commits
- Timeline: 3 new commits + Commit 3 pre-existing
- §9.18: mark execution complete
- Active queue: current priorities + cumulative completed list
2026-07-02 00:52:19 +08:00
LLLin000
01ba102605 fix: support Roman numeral and S-prefix table captions across roles/signatures/tables
- _TABLE_PREFIX_PATTERN in ocr_roles.py, ocr_signatures.py, ocr_tables.py
  now matches Table I/II/III and Table S1/S2
- _extract_table_number and _extract_marker_signature parse Roman numbers
- figure_title generic fallback checks table prefix before figure caption
- ocr_families.py adds early table-prefix guard before reference family
2026-07-02 00:47:18 +08:00
LLLin000
2593690b91 docs: record truth audit session (10 papers + GPT review)
Add timeline entry + §9.18 archive for 10-paper audit.
Update active queue to reflect 4-commit GPT-reviewed fix plan.
2026-07-02 00:28:27 +08:00
LLLin000
03e2c795c4 docs: clean active queue priorities (remove done item, dedup) 2026-07-01 21:54:40 +08:00
LLLin000
6ee91fd79f docs: update project management for residual fixes session
Add 7 fix entries to §2.3, timeline entry to §8, update executive
summary and active queue for completed 6-issue fix series.
2026-07-01 21:53:21 +08:00
Research Assistant
7b0bb41a9c project: update for Gate 5 session — PM rules, archive, active queue
- PROJECT-MANAGEMENT.md: new project folder management rules (7.1),
  updated status, fix table, decision log, session timeline, active queue
- project/current/ocr-v2-active-queue.md: refreshed for Gate 5 completion
- project/archive/: moved 3 stale current/ files with archive headers
  (ocr-v2-closeout-priority.md, phase2-root-cause-analysis.md,
  ocr-error-root-cause-fix-queue.md)
2026-06-28 22:31:39 +08:00
Research Assistant
fb28eca1fe fix: converge figure ownership arbitration and add VFS8CBW2 dense-composite diagnostics 2026-06-23 02:42:22 +08:00
Research Assistant
40123d1866 docs: remove OCR truth surface contradictions 2026-06-19 23:30:08 +08:00
Research Assistant
7ffe3ddd84 docs: realign OCR truth surface roles 2026-06-19 23:26:40 +08:00
Research Assistant
c96d4a5fba docs: update cross-links from frozen closeout to active queue 2026-06-19 23:25:40 +08:00
Research Assistant
6826506b26 docs: add OCR active queue and freeze closeout queue 2026-06-19 23:23:22 +08:00
Research Assistant
33a8028ffc docs: reconcile project truth files after blind audit
- Update PROJECT-MANAGEMENT.md header to 2026-06-19
- Update ocr-v2-closeout-priority.md baseline 945->975, fix typo
- Mark ocr-error-root-cause-fix-queue.md as SUPERSEDED
- Add .gitignore for .opencode/tmp/ and audit annotated_pages
- Add blind audit structured evidence (21 papers, JSON/CSV only)
2026-06-19 15:52:12 +08:00
Research Assistant
ecaed2ca7c docs: add project archive snapshots 2026-06-19 00:41:30 +08:00
Research Assistant
773bead726 docs: update project truth files after blind audit
- PROJECT-MANAGEMENT: record audit diff/canonical-roles/structural-gate session (10.13) and blind audit session (10.14)
- closeout-priority: Gate 5 DONE, next step is merge
- remaining-issues: post-blind-audit residuals documented
2026-06-19 00:37:02 +08:00
Research Assistant
70a7978de8 feat: complete OCR-v2 readiness gates + blind audit validation
- Gate 1: completeness signals for page text coverage
- Gate 2: DW figure ownership generalization with strict regression
- Gate 3: reference boundary enforcement from structure
- Gate 4: layout coverage taxonomy in audit/coverage_ledger.json
- diff_audit.py: canonical role alias mapping + auto-normalize truth_role
- ocr_structural_gate.py: table caption text-evidence fallback
- ocr-canonical-roles.md: canonical role list for audit workflow
- ocr-truth-audit.md: pre-flight checklist enforces canonical roles
- Blind audit: 5 unseen papers across domains, all PASS with coverage
2026-06-19 00:35:21 +08:00
Research Assistant
057c2b3653 docs: record OCR blind-audit entry gate 2026-06-18 22:20:39 +08:00
Research Assistant
d574b191d7 test: formalize OCR layout coverage readiness classes 2026-06-18 22:20:12 +08:00
Research Assistant
eac49edcf2 test: lock OCR readiness baseline and restore coverage ledger 2026-06-18 22:10:52 +08:00
Research Assistant
fa781aa029 docs: record DW repair and OCR rebuild results 2026-06-18 18:20:14 +08:00
Research Assistant
2c7e530f96 docs: align OCR active issues after 9.7 close-out 2026-06-18 18:01:06 +08:00
Research Assistant
dfced17c2a docs: record unified OCR close-out pass results (Task 5) 2026-06-18 02:43:52 +08:00
Research Assistant
acb7fce308 docs: record OCR close-out boundary pass results 2026-06-17 23:59:38 +08:00
Research Assistant
73242099fd docs: update Phase 2 results with -150 delta (need_reaudit 302->152) 2026-06-17 22:49:57 +08:00
Research Assistant
7e9987bf73 docs: update Phase 1 results with -50 figure_caption_candidate from panel label pattern fix 2026-06-17 19:26:17 +08:00
Research Assistant
3e96d65310 docs: record Phase 1 layout-first OCR results and audit evidence 2026-06-17 19:06:03 +08:00