On two-column résumés, experience roles come back with startDate and endDate null even when each role's dates are drawn on its title row and survive extraction as a single PdfLine.
Found while implementing #574 and #492 (PR #842). Pre-existing; neither issue touched date extraction.
Evidence
Null dates on every role of tests/fixtures/pdfs/unknown/two-column-sidebar-left-anchor-company.pdf (all 3), despite each role's dates riding its title row in the form Staff Engineer Jun 2015 - Jan 2019, and surviving as one PdfLine via the #425 flush-right-date exemption.
Sampled and reproduces on other two-column fixtures:
chromium-two-column-sidebar.pdf
weasyprint-cairo-two-column.pdf
deedy-*.pdf
It is specific to two-column. #492 confirmed start_date / end_date resolve correctly on all three roles of its single-column headerless-experience.pdf, where the same date shapes appear. So this is a two-column extraction/assembly problem, not a date-parsing problem — treat dates and title/company as separate lanes (the title/company collapse on these fixtures is a different defect, covered separately).
Where to start
two-column-sidebar-left-anchor-company.pdf is the cleanest reproducer — small, single-purpose, synthetic persona, and its roles are otherwise fully resolved (title, company, location all correct), so dates are the only thing missing. Compare its line assembly against the single-column case where the identical date shape works.
Likely suspects, unverified: whether orderItemsByColumn's per-band emission splits the date cell away from its title row before date parsing sees it, or whether the flush-right-date exemption is single-column-gated.
Acceptance criteria
Refs #811
On two-column résumés, experience roles come back with
startDateandendDatenull even when each role's dates are drawn on its title row and survive extraction as a singlePdfLine.Found while implementing #574 and #492 (PR #842). Pre-existing; neither issue touched date extraction.
Evidence
Null dates on every role of
tests/fixtures/pdfs/unknown/two-column-sidebar-left-anchor-company.pdf(all 3), despite each role's dates riding its title row in the formStaff Engineer Jun 2015 - Jan 2019, and surviving as onePdfLinevia the #425 flush-right-date exemption.Sampled and reproduces on other two-column fixtures:
chromium-two-column-sidebar.pdfweasyprint-cairo-two-column.pdfdeedy-*.pdfIt is specific to two-column. #492 confirmed
start_date/end_dateresolve correctly on all three roles of its single-columnheaderless-experience.pdf, where the same date shapes appear. So this is a two-column extraction/assembly problem, not a date-parsing problem — treat dates and title/company as separate lanes (the title/company collapse on these fixtures is a different defect, covered separately).Where to start
two-column-sidebar-left-anchor-company.pdfis the cleanest reproducer — small, single-purpose, synthetic persona, and its roles are otherwise fully resolved (title,company,locationall correct), so dates are the only thing missing. Compare its line assembly against the single-column case where the identical date shape works.Likely suspects, unverified: whether
orderItemsByColumn's per-band emission splits the date cell away from its title row before date parsing sees it, or whether the flush-right-date exemption is single-column-gated.Acceptance criteria
two-column-sidebar-left-anchor-company.pdfalready reproduces, no new binary needed.Refs #811