Commit graph

1490 commits

Author SHA1 Message Date
Research Assistant
147f5b77e1 docs: add convergence architecture spec/plans and dense-parent hardening spec/plan 2026-06-23 14:29:18 +08:00
Research Assistant
d7e7821c9c fix: resolve VFS8CBW2 page-32 Fig. 3 via page-aware reservation keys
- Changed _reserve_cross_page_objects to return set[tuple[int, str]]
  instead of set[str] so reused block_id across pages does not
  overwrite reserved legends (VFS8CBW2 page 33 vs 38 both used block_id=1)
- Updated _settle_cross_page_reserved_objects to key legends_by_id
  by (page, block_id)
- Fix: reserved legends no longer filtered by caption-band assist on
  competing-caption pages, so deferred hypotheses still emit
- Fix: reservation test assertion updated for tuple format
- Fix: competing-caption veto test updated for band-scoped parent
  acceptance
2026-06-23 14:29:05 +08:00
Research Assistant
b3ccea2de6 Dense composite parent candidate hardening — visual-only construction from atomic groups + unresolved clusters for dense fragmented pages 2026-06-23 11:50:22 +08:00
Research Assistant
1ef14b0030 Ticket B: Panel-title structural suppression — demote short unnumbered text inside visual envelopes on dense pages 2026-06-23 11:14:06 +08:00
Research Assistant
3e9454c464 Ticket A: Convergence scaffolding — ownership decision metadata, soft reservation, assetless sequence shell label 2026-06-23 11:06:57 +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
d4aa1b1037 fix: reuse shared PDF access during object extraction 2026-06-22 22:16:24 +08:00
Research Assistant
224882f697 fix: govern local figure pairing and ownership fallbacks 2026-06-22 22:15:39 +08:00
Research Assistant
410151ea8e fix: reuse rebuild metadata and object extraction work 2026-06-22 22:15:25 +08:00
Research Assistant
5bbe40d08b fix: reject weak isolated layout clusters 2026-06-22 22:15:12 +08:00
Research Assistant
ba68910cf3 fix(ocr): dedup backfill text in rebuild + exclude footer from table notes
- Add rebuild raw-block dedup: strip pdf_text_layer_fallback blocks
  whose 5-gram overlap with same-page body exceeds 80%
- Propagate _text_source / _ocr_raw_status / _ocr_raw_error_type to
  structured blocks for downstream debugging
- Add render-level dedup: skip body_paragraph if _text_source marks
  it as backfill with >=80% overlap vs emitted page text
- Exclude noise/page_footer/page_header/frontmatter_noise roles from
  table note candidate detection
2026-06-22 17:28:06 +08:00
Research Assistant
6522dc9aef docs: update PROJECT-MANAGEMENT with 2HEUD5P9 rebuild findings 2026-06-22 02:50:37 +08:00
Research Assistant
db69961c7c feat: convert body-zone footnotes with distinct font to callout 2026-06-22 01:51:10 +08:00
Research Assistant
30223812d1 feat: drop non-preproof cover page 1 via positive cover markers 2026-06-22 01:47:00 +08:00
Research Assistant
69f6a82b52 docs: update PROJECT-MANAGEMENT with figure merge refactor + heading/backmatter fixes + cover page plan 2026-06-22 01:44:52 +08:00
Research Assistant
4cd0cf3d54 fix: heading detection, backmatter, table consumed, footnote reorder, figure crop + audit fixtures 2026-06-22 01:28:55 +08:00
Research Assistant
924fcfd54f fix: footnote blocks emit after refs; frontmatter_noise renders on backmatter pages; visual heading grading; figure inner-text crop exclusion 2026-06-22 00:46:54 +08:00
Research Assistant
7e88e223bc fix: remove backmatter bold override for pre-reference headings — use visual heading level instead 2026-06-22 00:22:49 +08:00
Research Assistant
64e99367c9 fix: consumed_table_block_keys use (page, id) tuples; exempt numbered headings from bogus_heading length check 2026-06-22 00:09:23 +08:00
Research Assistant
8b382ab5c3 fix: exclude numbered headings from paper_title misclassification on page 2 2026-06-21 23:52:40 +08:00
Research Assistant
b1081e3db3 feat: visual heading grading — font_size cluster + bold/regular for L3/L4; fix number pattern for 3D-prefix headings 2026-06-21 23:42:15 +08:00
Research Assistant
9434dac6c7 fix: map heading depth>=3 to sub_subsection_heading (####) for numbered headings 2026-06-21 23:29:53 +08:00
Research Assistant
875b92dd82 fix: extend sequential fallback range to match cross-page figures beyond page+1 2026-06-21 22:30:30 +08:00
Research Assistant
280d4712f4 test: add production replay tests for distance clustering merge 2026-06-21 22:24:46 +08:00
Research Assistant
111c8d340a refactor: remove obsolete _grow_region_from_seed, _validate_grown_region, gap helpers 2026-06-21 22:24:02 +08:00
Research Assistant
ba9323fc2f feat: add group-aware sequential fallback for unmatched distance clusters 2026-06-21 22:22:47 +08:00
Research Assistant
da35e3721b feat: add distance_cluster scoring branch with safe_auto_match 2026-06-21 22:18:17 +08:00
Research Assistant
2f0e9cac55 refactor: replace greedy region-growing with distance clustering in _build_candidate_figure_groups_from_assets 2026-06-21 22:17:43 +08:00
Research Assistant
246d6d1c73 feat: add _cluster_page_assets with distance-based union-find clustering 2026-06-21 22:15:08 +08:00
Research Assistant
70debf1382 feat: add _filter_figure_assets helper for backward-compatible asset filtering 2026-06-21 22:14:22 +08:00
Research Assistant
d0c741b90a feat: add _has_text_separator and _rect_intersection_area for distance clustering 2026-06-21 22:13:37 +08:00
Research Assistant
da2e018b19 feat: figure merge clustering spec + fixes for caption dedup and structural gate
- Add global-distance-clustering figure merge design spec
- Fix ocr_roles.py: body_zone body_paragraph no longer promoted to
  figure_caption_candidate (prevents body mentions from entering legend pipeline)
- Fix ocr_document.py: preserve subsection_heading, reference_item,
  table_caption from structural-gate demotion
- Update PROJECT-MANAGEMENT.md with edge-case analysis
- Add ocr-vision-audit-master.md for CODE vs VISION separation
- Update SKILL.md dispatch rules with trust boundaries
2026-06-21 21:32:30 +08:00
Research Assistant
aef0cc0e78 docs: record region-growing figure merge slice 2026-06-20 02:31:44 +08:00
Research Assistant
a508f23d13 feat: integrate region-grown figure groups into inventory 2026-06-20 02:31:07 +08:00
Research Assistant
5d581af378 docs: record table note stabilization slice 2026-06-20 02:26:01 +08:00
Research Assistant
4fcf90ddf8 fix: improve bare table ambiguity tie-breaks 2026-06-20 02:25:15 +08:00
Research Assistant
9812fd5979 fix: validate grown figure groups before strict ownership 2026-06-20 02:21:46 +08:00
Research Assistant
684cc37470 feat: add seed-based region growth for figure groups 2026-06-20 02:20:33 +08:00
Research Assistant
eb070ae318 fix: project table note bands through object and render 2026-06-20 02:19:23 +08:00
Research Assistant
f89ebab5fe feat: add page footnote prior for table note bands
Notable design decisions:
- page-footnote prior uses strict filter: role=footnote AND raw_label=vision_footnote
- per-page prior uses OTHER pages' footnotes; falls back to global_min for single-page docs
- vertical range widened from 80pt to 100pt for multi-line note band capture
- note_match_reason set for all skip paths
2026-06-20 02:16:46 +08:00
Research Assistant
56565e934d feat: add additive rebuild health semantics and batch documentation 2026-06-20 00:16:28 +08:00
Research Assistant
4afb85d72d fix: split figure namespace and gate page asset grouping
Part A: namespace separation - add _extract_figure_namespace and _format_figure_id helpers, change dedup key from int to (namespace,int) tuple so Figure 1 and Supplementary Figure 1 do not collide, update figure_id generation across all paths, add figure_namespace field to matched entries.

Part B: page assets gate - suppress page_assets candidate groups on pages with competing captions (multiple figure_caption blocks) so one group cannot swallow assets meant for multiple figures.

Tests: test_main_and_supplementary_figures_do_not_dedup_into_one_number, test_page_assets_does_not_strict_match_when_page_has_competing_captions
2026-06-20 00:13:26 +08:00
Research Assistant
9b36b258e8 fix: gate bare table-number matching on strong geometry 2026-06-19 23:59:58 +08:00
Research Assistant
0e0a8463af fix: clean table projection and health heading semantics 2026-06-19 23:50:12 +08:00
Research Assistant
765cdf91f2 fix: carry owned table notes through rebuild outputs 2026-06-19 23:34:01 +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
cc8859b23a test: add OCR truth surface doc contract guard 2026-06-19 23:21:02 +08:00