Skip to content

Retain thin filled PDF rule geometry without inferring cells - #230

Merged
silverstein merged 1 commit into
masterfrom
fix/horizontal-rule-tables-20261020
Oct 20, 2026
Merged

silverstein merged 1 commit into
masterfrom
fix/horizontal-rule-tables-20261020

Conversation

@silverstein

Copy link
Copy Markdown
Member

A measured table page draws its horizontal rules as thin filled rectangles. The extractor previously dropped them under the 5-point cell-rectangle floor, leaving neither filled-bar nor stroke evidence for downstream review.

This change retains a bounded single closed axis-aligned fill/eoFill rectangle with transformed short side 0.05 through 2 points and long side at least 5 points. It records the actual filled area in existing neutral rectangle evidence, not a fabricated stroke centerline, cell border or visibility claim. Full command consumption rejects residual drawing after closePath. The established cell-grid candidate path independently retains its 5-point minimum on both sides.

Validation:

  • Darwin arm64, Node 22.23.2, one worker and 768 MiB Node cap: 254 tests passed across nine layout, Markdown, real MCP conversion, verified-table proposal/verifier, document-map and extraction scorer/generation files.
  • New cases cover filled bars, transformed dimensions, clipping/unpainted/stroke exclusions, open/compound/curved/sheared paths, residual commands, size boundaries, cap accounting, fresh PDF source replay and evidence forgery, and both existing table profiles.
  • Independent adversarial review found and closed the residual-path case. The first hardening run retained a fixture precision failure (227 passed, 1 failed); the corrected fixture did not relax runtime thresholds and the final bank passed.
  • The real page now retains 16 additional filled bars, including all six pieces forming its three table rules. Extracted Markdown and the result outside optional proposal packets are unchanged; the table still reports unknown topology. This is not completed table recovery or a new benchmark score. No corpus PDF is committed.
  • The current layout oracle was regenerated. Only validator module sizes/hashes and their source-set digest changed; all eight cases and expected facts remain unchanged, independently reviewed.

Source/share mirrors agree. No schema shape, API, dependency, OCR/model/provider call, release, or installation change is included.

@silverstein
silverstein merged commit bd65d22 into master Oct 20, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant