parser: dateless anchor-line flush-right location glue not peeled (follow-up to #891)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- typescript
- Domain
- backend
Research direction
Start in src/lib/heuristics/entry-blocks.ts, tracing the dateless anchor path and the existing splitOnFlushRightGap and peelFlushRightLocation logic from line-assembly.ts. Read belowHeaderCandidates and disambiguateCompanyTitle to determine where a peeled location can land for first_line projects and achievements. Add a dateless-anchor fixture and verify the flush-right location is preserved without breaking title/company disambiguation.
Written by the indexing model from the issue text.
Description
Problem
#891 / PR #895 fixed a tab-justified flush-right work-mode/location keyword ("Remote"/"Hybrid"/"On-site") glued onto a role's title when title and location render on the same PDF row — but only for below-anchor header lines (peelFlushRightLocation, wired into the belowHeaderLines loop in src/lib/heuristics/entry-blocks.ts).
A dateless anchor line — cfg.anchor === "first_line" sections (projects, achievements) whose anchor has no parseable date, or any date_range-anchor entry where shouldParseAnchorDate returns false — takes anchorLine.text verbatim with no peel:
const anchorTextWithoutDates = parseAnchorDate
? stripDateRange(anchorHeadText)
: anchorLine.text; // <- no peel applied here
So the same tab-justified flush-right glue on the anchor line itself (not a line below it) still merges the keyword into the title/anchor text, and the location is lost the same way #891 described.
Scope note
Flagged during review of PR #895 (self-review, comment) as narrow and untested — needs a dateless-anchor fixture to reproduce, not confirmed against a real corpus entry. Deliberately left out of #895's dated/below-anchor scope.
Suggested approach
Extend the same splitOnFlushRightGap (line-assembly.ts) geometry check to anchorLine when !parseAnchorDate, gated by the same closed isBareLocationString vocabulary as peelFlushRightLocation. Needs care: the anchor line feeds title/company disambiguation directly (not just a below-anchor header candidate), and first_line anchors are shared by projects/achievements sections where "title" semantics differ from experience roles — the peeled trailer needs a landing spot equivalent to what belowHeaderCandidates gives disambiguateCompanyTitle today.
- Dominant language
- TypeScript
- Stars
- 11
- Forks
- 4
- Avg merge
- 1d 24m
- Merged PRs (30d)
- 71
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from offlinecv/OfflineCV
-
chore gaal
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
documentation
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Maintainers usually reply within 1 day
-
documentation
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Maintainers usually reply within 1 day
-
Download PDF: preview the exact exported PDF, all pages, before saving itPossibly taken @s-annam claimed this 1 day ago. Openfeature gaal ready-for-agent ux:edit-export
offlinecv/OfflineCV#1077 · 1 assignee ·
Maintainers usually reply within 1 day
-
chore gaal refactor
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Maintainers usually reply within 1 day
All issues in offlinecv/OfflineCV
Similar issues
-
triage
Difficulty 1/5 Under an hour Newbie friendliness 90/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
mermaid-js/mermaid-live-editor#2053 ·
Maintainers usually reply within 1 day
-
factory
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
jessepollak/home#1455 ·
Maintainers usually reply within 1 day
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 95/100
lingdojo/kana-dojo#31227 · 1 comment · 5 reactions ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
appandflow/stim#1838 ·
Maintainers usually reply within 1 day