Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

parser: dateless anchor-line flush-right location glue not peeled (follow-up to #891)

Open
#896 0 comments 0 reactions 0 assignees View on GitHub

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

bug needs-clarification ux:parsing

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from offlinecv/OfflineCV

All issues in offlinecv/OfflineCV

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.