---
summary: "crossref_get_work's publication-date fallback now matches the three search tools instead of stopping early on a source naming no date"
breaking: false
security: false
---

# 0.3.9 — 2026-08-09

## Fixed

- **`crossref_get_work`**'s publication-date fallback picked the first non-null date *source* (`raw.published ?? raw['published-print'] ?? raw['published-online'] ?? raw.issued`) before parsing, so a source deposited holding only an unknown component (`date-parts: [[null]]`) stopped the chain instead of falling through — diverging from `crossref_search_works`, `crossref_search_journals`, and `crossref_search_funders`, which already parsed each source before coalescing. All four tools now resolve through shared `resolveWorkDate` / `resolveWorkSummaryDate` in `crossref-service.ts`, so the rule — advance past a source naming no date, never refine a coarse date from a more precise later source — is enforced once instead of separately at each call site. Sampled live across 73,398 records, no work produced the divergent shape: `issued` is the one field the API guarantees present, so it's the only source that ever carries the `[[null]]` placeholder alone. [#59](https://github.com/cyanheads/crossref-mcp-server/issues/59)

415 tests pass; `bun run devcheck` and `bun run rebuild` clean.
