CrossRef journal search: filter by resolved ISSN, not a name boost - #8
Merged
Merged
Conversation
…measured live, a search scoped to the Journal of Chemical Physics returned Chemical Engineering Science 12 of 12 times under date order and 0 of 12 of its own papers under relevance order, because query.container-title is a ranking hint. The client now resolves the journal through /journals (title equality after normalisation, one cached request per name) and passes filter=issn:, which returned 218 hits all from the journal; an unresolved abbreviation falls back to the boost, an over-fetched page, and a client-side container-title match that returns nothing rather than another journal's papers. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
feed.research/attest research --journalon CrossRef returned papers from the wrong journal.query.container-titleis a ranking hint, not a filter: live, a search scoped to the Journal of Chemical Physics returned Chemical Engineering Science 12 of 12 times undersort=publishedand 0 of 12 of its own papers under relevance order. CrossRef's server-sidecontainer-titlefilter is exact-match on the registered title (0 hits without the leading "The").The client now resolves the journal name through
/journals(title equality after normalisation, one cached request per name per client) and passesfilter=issn:<issn>, which returned 218 hits all from the journal. An unresolved name (an abbreviation such as "J Chem Phys", which/journalsdoes not know) falls back to the boost plus an over-fetched page and a client-side container-title match, so it returns nothing rather than another journal's papers.Verified
attest library export --bibrenders them.test_cite_check_*intests/test_citations.py) reproduce on the untouched merged tip: they open the live~/.hermes/.../hermes.db, which another session migrated to schema version 10 today, ahead of the code in every worktree. Unrelated to this change; noted below.Also observed
Those two citation tests read machine state (the live DB via
resolve_db_path's skill-data fallback) rather than a fixture, so they fail whenever the live DB is ahead of the checkout. Worth repointing in conftest separately.Spec amended with a dated "Measured" section; changelog entry under Fixed.
🤖 Generated with Claude Code