From bea122b36fd8e427cb09b4eb567db4f52d9ba91d Mon Sep 17 00:00:00 2001 From: Research Assistant Date: Mon, 29 Jun 2026 00:02:35 +0800 Subject: [PATCH] fix: prevent frontmatter_side_zone on/near reference boundary page Blocks on ref page and 1 page before no longer get frontmatter_side_zone. Fixes 'Conflict of Interest' heading on P21 (4AG67PBH) being assigned to frontmatter_side_zone via _is_explicit_frontmatter_support_furniture path that bypassed _is_heading_like_block check. Adds page gate: first_reference_page is not None and page >= first_reference_page - 1 --- paperforge/worker/ocr_document.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/paperforge/worker/ocr_document.py b/paperforge/worker/ocr_document.py index c78b3a8e..f4ce7825 100644 --- a/paperforge/worker/ocr_document.py +++ b/paperforge/worker/ocr_document.py @@ -1460,6 +1460,10 @@ def infer_zones( and first_surviving_page is not None and int(block.get("page", 0) or 0) == first_surviving_page ) + and not ( + first_reference_page is not None + and int(block.get("page", 0) or 0) >= first_reference_page - 1 + ) ] # Blocks on the first surviving page excluded from frontmatter_side_zone # because body has started are real body content -- collect their ids so