Skip to content

Add CSL-JSON import endpoint for correct entry-type mapping#16151

Merged
Siedlerchr merged 10 commits into
mainfrom
zotero-item-import-endpoint
Jul 7, 2026
Merged

Add CSL-JSON import endpoint for correct entry-type mapping#16151
Siedlerchr merged 10 commits into
mainfrom
zotero-item-import-endpoint

Conversation

@koppor

@koppor koppor commented Jul 3, 2026

Copy link
Copy Markdown
Member

Related issues and pull requests

Related to #15875 (Zotero compatibility) and ADR #15907. There is no dedicated issue requesting this HTTP endpoint, so no Closes.

PR Description

The HTTP import endpoint POST /libraries/{id}/entries now also accepts CSL-JSON (application/vnd.citationstyles.csl+json), so a CSL-JSON producer (e.g. a browser translator) can hand items to JabRef and get the correct entry type — conference paper → @InProceedings, book chapter → @InBook, thesis → @Thesis, report → @Report, web page → @Online — instead of a flat @article. Rather than a bespoke Zotero-itemType→BibTeX map (the option rejected in ADR 0064), it reuses the merged citation-js-based CSL mapping (CSLItemTypeDefinitions, #15946) by extracting the CSL-JSON → BibEntry core out of ZoteroCitationMarkParser into a new public parseCslJsonItems(String), and appends the mapped entries through the existing AppendBibTeXToLibrary command (duplicate handling and group assignment preserved).

Steps to test

  1. Open a library in JabRef and enable the HTTP server.

  2. POST a CSL item to the running server:

    curl -i -X POST http://localhost:23119/libraries/current/entries \
      -H "Content-Type: application/vnd.citationstyles.csl+json" \
      -d '{"type":"paper-conference","title":"A paper","container-title":"Proc. of Test","author":[{"family":"Doe","given":"Jane"}],"issued":{"date-parts":[["2021",5]]}}'
    
  3. Expect 204 No Content, and a new @InProceedings entry in the library with booktitle = {Proc. of Test}, author Jane Doe, year 2021 — not @article.

  4. Posting an array of items adds several entries; blank or unparseable bodies return 400.

AI usage

Claude Code (model claude-opus-4-8). All code reviewed and owned by the submitter.

AI CHECKLIST.md walkthrough

1. Code self-review

Nullability and control flow

  • No == null / != null checks in new code (guarded by isJsonArray()/isJsonObject() so Gson results are non-null).
  • No Objects.requireNonNull(...).
  • [/] New classes annotated with @NullMarked — no new class; edits sit in existing (non-@NullMarked) files.
  • Optional consumed with ifPresent / map — no orElse(unused) / isPresent()+get().
  • StringUtil.isBlank(...) used for the blank-body checks.

Exceptions

  • No catch (Exception e) — only JsonParseException | NumberFormatException | NoSuchElementException.
  • No throw new RuntimeException(...) / IllegalStateException(...); the endpoint throws JAX-RS BadRequestException.
  • Logged exception passed as last logger argument (LOGGER.debug("...", e)).

Style and idioms

  • New BibEntry built with withers (withField, withCitationKey, withDate).
  • Modern Java (List.of(), text blocks, switch expressions in existing code).
  • Regex uses precompiled Pattern constant (existing YEAR_PATTERN).
  • [/] BackgroundTask — not applicable, no background work.
  • No commented-out code / AI-disclosure comments in source.
  • Markdown Javadoc uses [BibEntry] / `code`, not {@link} / {@code}.

User-facing text

  • [/] Localization — server error strings are HTTP 400 reasons, not localized UI text (consistent with sibling endpoints in the same class).

Security

  • No user data written into a text/html response; error messages are plain-text HTTP reasons.

Tests

  • org.jabref.logic behavior change covered — ZoteroCitationMarkParserTest (mapping, array/object/blank/invalid) and EntriesResourceTest (endpoint convert + 400 paths).
  • Plain JUnit assertEquals/assertTrue, no AssertJ, no @DisplayName, exceptions propagate.

2. Verification commands

  • [/] ./gradlew :jablib:check (full) — ran the relevant subsets below instead.
  • ./gradlew :jablib:checkstyleMain checkstyleTest :jabsrv:checkstyleMain checkstyleTest — pass.
  • ./gradlew :jablib:modernizer :jabsrv:modernizer — pass.
  • [/] ./gradlew :rewriteDryRun — fails on pre-existing parse problems in unrelated jabgui files; the changed jablib/jabsrv files pass checkstyle (same style).
  • ./gradlew javadoc — not run.
  • [/] npx markdownlint-cli2 — only a one-line CHANGELOG.md addition matching existing format.

3. Documentation

  • CHANGELOG.md entry added (end-user wording), linked to this PR after creation.
  • Searched issues — linked Support for Zotero: Other common types #15875 as related only (no confident endpoint-specific issue).
  • [/] Requirement doc — HTTP-API extension, no docs/requirements area change.
  • [/] Developer docs — none needed.

4. Pull request

  • Body built from PULL_REQUEST_TEMPLATE.md, sections filled.
  • Checklist items kept and marked.
  • HTML comments removed.
  • CHANGELOG TODO→real PR link done.

Checklist

  • I own the copyright of the code submitted and I license it under the MIT license
  • If AI tools were used, I disclosed them in the "AI usage" section and reviewed, understood, and take full ownership of all AI-generated code
  • I manually tested my changes in running JabRef (always required)
  • I added JUnit tests for changes (if applicable)
  • [/] I added screenshots in the PR description (if change is visible to the user)
  • [/] I added a screenshot in the PR description showing a library with a single entry with me as author and as title the issue number
  • I described the change in CHANGELOG.md in a way that can be understood by the average user (if change is visible to the user)
  • [/] I checked the user documentation for up to dateness and submitted a pull request to our user documentation repository

koppor and others added 2 commits July 4, 2026 01:35
Extend `POST /libraries/{id}/entries` to accept CSL-JSON
(`application/vnd.citationstyles.csl+json`), so browser translators (and any
CSL-JSON producer) can hand items to JabRef and get the correct entry type
instead of a flat @Article.

Rather than a bespoke Zotero-itemType -> BibTeX map (rejected by ADR 0064),
reuse the merged citation-js-based CSL mapping (`CSLItemTypeDefinitions`,
PR #15946): extract the CSL-JSON -> BibEntry core from
`ZoteroCitationMarkParser.toBibEntry` into a new public
`parseCslJsonItems(String)` that accepts a bare CSL item or an array.

`EntriesResource.addCslJson` serialises the mapped entries to BibTeX and
appends them via the existing `AppendBibTeXToLibrary` command, preserving
duplicate handling and group assignment. Entries carry no citation key so
JabRef generates keys on import. Freshly built entries are written with
reformat=true (empty parsed serialisation otherwise writes nothing).

Tests: type/field mapping and array/object/blank/invalid handling in
`ZoteroCitationMarkParserTest`; endpoint conversion + 400 paths in
`EntriesResourceTest`.

Related to #15875

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@qodo-free-for-open-source-projects

Copy link
Copy Markdown
Contributor

PR Summary by Qodo

Add CSL-JSON import support to POST /libraries/{id}/entries

✨ Enhancement 🧪 Tests 📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Accept CSL-JSON payloads on the entries import endpoint alongside BibTeX/plain-text.
• Reuse citation-js CSL mappings to produce correct Bib(La)TeX entry types.
• Add end-to-end + parser tests and document the new media type in CHANGELOG.
Diagram

graph TD
  A["CSL-JSON client"] --> B["EntriesResource"] --> C["parseCslJsonItems"] --> D["CSLItemTypeDefinitions"] --> E["BibEntryWriter"] --> F["AppendBibTeXToLibrary"] --> G[("Open library")]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Introduce a dedicated CSL-JSON importer module
  • ➕ Avoids coupling CSL-JSON parsing to the OpenOffice/Zotero citation-mark parser
  • ➕ Makes CSL-JSON conversion reusable in non-OpenOffice import paths (CLI, file import)
  • ➖ More code movement/refactor now (new package, wiring, tests)
  • ➖ Higher risk of unintended behavior changes in existing Zotero parsing paths
2. Append entries via an internal ‘add BibEntry’ command instead of BibTeX roundtrip
  • ➕ Avoids serialization/deserialization artifacts and formatting concerns
  • ➕ Keeps import as structured data longer (easier to extend with metadata later)
  • ➖ Would require a new UI command/path or expanding existing one
  • ➖ Risk of diverging from existing duplicate/group handling if not carefully integrated

Recommendation: The PR’s approach is a good incremental integration: it reuses the existing CSL mapping and the proven AppendBibTeXToLibrary command to preserve duplicate handling and group assignment. If CSL-JSON import expands beyond this endpoint, consider extracting parseCslJsonItems into a dedicated importer/service to avoid long-term coupling to the OpenOffice/Zotero parser.

Files changed (5) +192 / -2

Enhancement (2) +87 / -2
ZoteroCitationMarkParser.javaExpose bare CSL-JSON parsing to BibEntry without citation keys +45/-2

Expose bare CSL-JSON parsing to BibEntry without citation keys

• Introduces parseCslJsonItems(String) to parse a single CSL item object or an array. Refactors toBibEntry so the Zotero citation-mark path still assigns Zotero-<id> keys while the new CSL-JSON import path leaves keys empty for generation on import.

jablib/src/main/java/org/jabref/logic/openoffice/ZoteroCitationMarkParser.java

EntriesResource.javaAdd CSL-JSON media type handler for POST /libraries/{id}/entries +42/-0

Add CSL-JSON media type handler for POST /libraries/{id}/entries

• Adds a new @POST handler consuming application/vnd.citationstyles.csl+json. Parses CSL-JSON into BibEntry objects, serializes them to BibTeX with reformat enabled, and appends via AppendBibTeXToLibrary while enforcing GUI-mode and returning 400 for empty/unparseable input.

jabsrv/src/main/java/org/jabref/http/server/resources/EntriesResource.java

Tests (2) +104 / -0
ZoteroCitationMarkParserTest.javaAdd unit tests for bare CSL-JSON parsing and mapping +66/-0

Add unit tests for bare CSL-JSON parsing and mapping

• Adds tests covering object vs array payloads, empty/invalid input behavior, citation key absence, and representative type/field mappings (e.g., paper-conference to InProceedings).

jablib/src/test/java/org/jabref/logic/openoffice/ZoteroCitationMarkParserTest.java

EntriesResourceTest.javaAdd endpoint tests for CSL-JSON import success and 400 paths +38/-0

Add endpoint tests for CSL-JSON import success and 400 paths

• Adds helper to POST CSL-JSON and tests end-to-end type conversion (paper-conference -> @InProceedings), plus 400 responses for empty/unparseable payloads. Extends the standalone-mode parameterized coverage to include CSL-JSON.

jabsrv/src/test/java/org/jabref/http/server/EntriesResourceTest.java

Documentation (1) +1 / -0
CHANGELOG.mdDocument CSL-JSON support for entries import endpoint +1/-0

Document CSL-JSON support for entries import endpoint

• Adds an Unreleased changelog entry noting that POST /libraries/{id}/entries now accepts CSL-JSON and maps item types to correct entry types.

CHANGELOG.md

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Null CSL values crash ✓ Resolved 🐞 Bug ☼ Reliability
Description
ZoteroCitationMarkParser can throw NullPointerException when a CSL item contains explicit nulls for
optional fields like "author" or "issued" (or nested "date-parts"), because toBibEntry passes them
to helpers that dereference without null checks. This exception is not caught by parseCslJsonItems,
so the new EntriesResource.addCslJson endpoint can return 500 for malformed-but-parseable CSL-JSON
instead of a 400.
Code

jablib/src/main/java/org/jabref/logic/openoffice/ZoteroCitationMarkParser.java[R111-116]

+    private static Optional<BibEntry> toBibEntry(ZoteroCitationData.ItemData itemData) {
EntryType entryType = CSLItemTypeDefinitions.getEntryType(itemData.type);
BibEntry entry = new BibEntry(entryType);
-        entry.withCitationKey("Zotero-" + (citationItem.id));
setAuthors(itemData.author).ifPresent(authors -> entry.withField(StandardField.AUTHOR, authors));
setDate(entry, itemData.issued);
for (Map.Entry<String, Field> fieldMapping : CSLItemTypeDefinitions.getFieldMappings(itemData.type, itemData).entrySet()) {
Evidence
The CSL-JSON endpoint uses parseCslJsonItems, which calls toBibEntry(ItemData) for each parsed item.
toBibEntry immediately passes potentially-null deserialized fields into helpers that dereference
them without null checks, and parseCslJsonItems does not catch NullPointerException—so explicit JSON
nulls can crash the request.

jablib/src/main/java/org/jabref/logic/openoffice/ZoteroCitationMarkParser.java[66-94]
jablib/src/main/java/org/jabref/logic/openoffice/ZoteroCitationMarkParser.java[111-149]
jablib/src/main/java/org/jabref/logic/openoffice/ZoteroCitationMarkParser.java[123-149]
jablib/src/main/java/org/jabref/logic/openoffice/ZoteroCitationData.java[16-96]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
CSL-JSON items that explicitly set optional properties to `null` can crash the import path with a `NullPointerException` (e.g., `"author": null`, `"issued": null`, or `"issued": {"date-parts": null}`), causing the HTTP endpoint to respond with 500.
### Issue Context
`parseCslJsonItems` deserializes arbitrary user-provided JSON via Gson and then calls `toBibEntry(ItemData)`; `toBibEntry` forwards `itemData.author` and `itemData.issued` into helper methods that assume non-null and call methods like `.isEmpty()` / field access.
### Fix Focus Areas
- jablib/src/main/java/org/jabref/logic/openoffice/ZoteroCitationMarkParser.java[66-94]
- jablib/src/main/java/org/jabref/logic/openoffice/ZoteroCitationMarkParser.java[111-149]
### What to change
- In `toBibEntry(ItemData)` (or before calling it), normalize nullable fields:
- `List<AuthorData> authors = itemData.author == null ? List.of() : itemData.author;`
- `IssuedData issued = itemData.issued == null ? new IssuedData() : itemData.issued;`
- and inside `setDate`, guard against `issuedData.dateParts == null`.
- Optionally add a defensive `catch (RuntimeException e)` in `parseCslJsonItems` (or per-item try/catch in the loop) to ensure unexpected nulls/shape issues don’t bubble to the HTTP layer as 500; skip invalid items or return empty so the endpoint can emit 400.
- Add/extend a unit test for `parseCslJsonItems` with `{"type":"article-journal","title":"T","author":null}` and/or `{"type":"article-journal","issued":null}` to lock in behavior (should not throw; should parse entry without those fields or be rejected consistently).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. addCslJson uses @param tag ✓ Resolved 📘 Rule violation ⚙ Maintainability
Description
The new addCslJson Markdown Javadoc (///) includes a traditional @param tag, which violates
the requirement to use Markdown syntax (e.g., parameter lists) instead of Javadoc tags. This reduces
documentation consistency across the codebase.
Code

jabsrv/src/main/java/org/jabref/http/server/resources/EntriesResource.java[96]

+    /// @param group optional name of a group the imported entries are additionally assigned to.
Evidence
PR Compliance ID 10 requires multi-line documentation to use Markdown Javadoc (///) with Markdown
conventions instead of traditional Javadoc tags. The new addCslJson doc block includes `/// @param
group ...`, which is exactly the disallowed style.

AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax: AGENTS.md: Use Markdown Javadoc Comments (///) for Multi-line Documentation and Prefer Markdown Syntax
jabsrv/src/main/java/org/jabref/http/server/resources/EntriesResource.java[88-97]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new Markdown Javadoc (`///`) for `addCslJson` uses a traditional Javadoc tag (`@param group ...`). The project guideline requires Markdown-style documentation (avoid `@param`/`{@link ...}` tags in new multi-line docs).
## Issue Context
This is the documentation block immediately above `addCslJson(...)`.
## Fix Focus Areas
- jabsrv/src/main/java/org/jabref/http/server/resources/EntriesResource.java[88-99]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment thread jabsrv/src/main/java/org/jabref/http/server/resources/EntriesResource.java Outdated
Comment thread jablib/src/main/java/org/jabref/logic/openoffice/ZoteroCitationMarkParser.java Outdated
koppor and others added 5 commits July 4, 2026 01:43
The isJsonArray/isJsonObject guards already ensure Gson returns non-null, so
the != null checks were unreachable; removing them also satisfies the
no-null-check style rule.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CSL-JSON that sets optional properties explicitly to null ("type": null,
"author": null, "issued": null, "issued": {"date-parts": null}) crashed the
import path with an NPE (Gson overwrites the field defaults with null, and the
immutable CSL mapping tables reject a null key lookup), surfacing as HTTP 500.

Normalise type/author/issued and guard date-parts before use. Add a
parameterised regression test covering each null shape.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the traditional @param tag with a Markdown sentence, per the
project's Markdown-Javadoc guideline for new docs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Use @CsvSource with a `|` delimiter (JSON keeps its commas) so the null-field
cases read as a table of input -> expected entry type, and clean up the
provider imports.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@koppor koppor requested a review from pluto-han July 4, 2026 00:00
@koppor koppor added the status: ready-for-review Pull Requests that are ready to be reviewed by the maintainers label Jul 4, 2026
Replace list.get(0) with list.getFirst() per SequencedCollection recipe.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@subhramit subhramit left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just one nit on first look

Comment thread jablib/src/main/java/org/jabref/logic/openoffice/ZoteroCitationMarkParser.java Outdated
…nMarkParser.java

Co-authored-by: Subhramit Basu <subhramit.bb@live.in>
@github-actions github-actions Bot added status: changes-required Pull requests that are not yet complete and removed status: ready-for-review Pull Requests that are ready to be reviewed by the maintainers labels Jul 6, 2026
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Your pull request conflicts with the target branch.

Please merge with your code. For a step-by-step guide to resolve merge conflicts, see https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.

@koppor koppor added the status: awaiting-second-review For non-trivial changes label Jul 6, 2026
@Siedlerchr Siedlerchr added this pull request to the merge queue Jul 7, 2026
@github-actions github-actions Bot added the status: to-be-merged PRs which are accepted and should go into the merge-queue. label Jul 7, 2026
Merged via the queue into main with commit 47f441e Jul 7, 2026
68 of 71 checks passed
@Siedlerchr Siedlerchr deleted the zotero-item-import-endpoint branch July 7, 2026 12:42
Siedlerchr added a commit to InAnYan/jabref that referenced this pull request Jul 8, 2026
* upstream/main:
  fix dependency configuration for jlatexmath (JabRef#16202)
  Open add-file link dialog when File field added; add on empty-area double-click (JabRef#16192)
  New Crowdin updates (JabRef#16196)
  Chore(deps): Bump org.postgresql:postgresql from 42.7.12 to 42.7.13 in /versions (JabRef#16194)
  Chore(deps): Bump org.gradlex:java-module-packaging in /build-logic (JabRef#16193)
  Add CSL-JSON import endpoint for correct entry-type mapping (JabRef#16151)
  Increase arrow button size in Entry Preview preferences tab (JabRef#16063)
  Add focus-triggered remove button for empty optional fields in entry editor (JabRef#16185)
  Render entry preview with html-to-node and remove javafx.web (JabRef#16145)
  Fix arrow-text spacing in entry editor collapsible sections (JabRef#16184)
  SLR: scopus raw query support (JabRef#16103)
  Update crowdin config to support CLI (JabRef#16182)
  🤖 Fix entry editor fields growing wider than available space for long values (JabRef#16181)
  Fix file field editor: button placement, sizing, live refresh (JabRef#16172)
  Add madrlint MADR linter to test workflow (JabRef#16168)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: awaiting-second-review For non-trivial changes status: changes-required Pull requests that are not yet complete status: to-be-merged PRs which are accepted and should go into the merge-queue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants