Skip to content

[export] Non-bullet description content is dropped from the downloaded PDF #844

Description

@s-annam

Description text that did not originate from a glyph bullet () is present in the parse and on the reconstructed résumé, but absent from the downloaded PDF. The user sees a line on screen, downloads, and it is gone.

Found while implementing #492 (PR #842); pre-existing, not caused by that work.

Mechanism

resolveBullets in src/lib/pdf/ats-resume-model.ts prefers the graded BulletObservation pool. src/lib/heuristics/group-bullets.ts documents that pool as "extracted from rawText" — i.e. glyph bullets only. Any description entry that reached the field by another route has no BulletObservation backing it and is dropped at render.

There are at least two such routes today, both legitimate:

Concretely, on tests/fixtures/pdfs/unknown/headerless-experience.pdf, role 1's "Leads the automation guild." is on description in the parse and renders on the reconstructed résumé, but does not appear in the exported PDF.

Why no gate caught it

The round-trip invariant (corpus-roundtrip.test.ts) compares only title / company / start_date / end_date. description is outside the compared set, so parse → export → re-parse stays green while the content silently disappears. Nothing regressed; the gap was simply never observable.

Acceptance criteria

  • Non-bullet description content survives export to the downloaded PDF.
  • A fixture pins it — headerless-experience.pdf already reproduces and needs no new binary.
  • Decide and record whether description should join the round-trip comparison set. If not, say why in the test's docblock, so the next person doesn't read the green gate as coverage.
  • Confirm the fix does not double-emit a line that IS glyph-bulleted (the preemptedIsHeader token-coverage filter in resolveDescription exists to prevent exactly that on the parse side).

Notes

Worth checking whether this is the same root as any open export-fidelity issue before building — the parse-model ↔ export-model seam has come up before, and the fix belongs wherever that seam is owned rather than patched at the call site.

Refs #811

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingux:edit-exportUX program: editing, applying changes, and the download artifact

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions