Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ requirementTracing {
)
)

filteredArtifactTypes =
filteredArtifactTypes =
listOf(
"impl",
"utest",
Expand All @@ -61,7 +61,7 @@ requirementTracing {
"pp",
"feat",
"req"
)
)

// TODO: Short Tag Importer: https://github.com/itsallcode/openfasttrace-gradle#configuring-the-short-tag-importer
}
Expand Down
10 changes: 0 additions & 10 deletions jablib/src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@
exports org.jabref.model.openoffice.uno;
exports org.jabref.model.openoffice.util;
exports org.jabref.logic.importer.plaincitation;
exports org.jabref.logic.ai.templates;
exports org.jabref.logic.bst;
exports org.jabref.model.study;
exports org.jabref.logic.shared.security;
Expand All @@ -121,23 +120,18 @@

// region: AI
exports org.jabref.logic.ai;
exports org.jabref.logic.ai.models;
exports org.jabref.logic.ai.chatting;
exports org.jabref.logic.ai.util;
exports org.jabref.logic.ai.summarization;
exports org.jabref.logic.ai.summarization.repositories;
exports org.jabref.logic.ai.ingestion;
exports org.jabref.logic.ai.ingestion.logic.documentsplitting;
exports org.jabref.logic.ai.ingestion.logic.ingestion;
exports org.jabref.logic.ai.ingestion.logic.parsing;
exports org.jabref.logic.ai.summarization.tasks;
exports org.jabref.logic.ai.summarization.logic;
exports org.jabref.logic.ai.summarization.logic.summarizationalgorithms;
exports org.jabref.logic.ai.ingestion.tasks;
exports org.jabref.logic.ai.ingestion.repositories;
exports org.jabref.logic.ai.ingestion.logic;
exports org.jabref.logic.ai.chatting.tasks;
exports org.jabref.logic.ai.chatting.repositories;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Action required

1. Hidden chat repository api 🐞 Bug ≡ Correctness

AiService#getChatHistoryRepository() is public but returns ChatHistoryRepository from
org.jabref.logic.ai.chatting.repositories, which is no longer exported by jablib's module-info,
so other modules cannot legally use that return type. Any downstream module calling this method (or
trying to reference its return type) will fail to compile under JPMS.
Agent Prompt
## Issue description
`jablib` no longer exports `org.jabref.logic.ai.chatting.repositories`, but `org.jabref.logic.ai.AiService` (in an exported package) still exposes `ChatHistoryRepository` in a public method. This makes that method effectively unusable to other modules and is a breaking change for any JPMS consumer relying on it.

## Issue Context
In JPMS, public signatures used across modules must reference types in exported packages, otherwise downstream compilation/access is blocked.

## Fix Focus Areas
Choose one of:
1) Restore the export(s) needed by public signatures.
2) Refactor `AiService` public API to not expose repository types from non-exported packages (e.g., remove the getter, make it package-private, or return an exported abstraction located in an exported package).

- jablib/src/main/java/module-info.java[121-155]
- jablib/src/main/java/org/jabref/logic/ai/AiService.java[8-15]
- jablib/src/main/java/org/jabref/logic/ai/AiService.java[186-188]

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

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is intended

exports org.jabref.logic.ai.preferences;
exports org.jabref.model.ai.chatting;
exports org.jabref.model.ai.pipeline;
Expand All @@ -152,16 +146,12 @@
exports org.jabref.logic.ai.ingestion.tasks.generateembeddingsforseveral;
exports org.jabref.logic.ai.ingestion.tasks.generateembeddings;
exports org.jabref.logic.ai.rag.util;
exports org.jabref.logic.ai.tokenization.logic;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Action required

2. Hidden tokenizer return type 🐞 Bug ≡ Correctness

ChatModel#getTokenizer() is public and part of an exported package, but returns TokenEstimator
from org.jabref.logic.ai.tokenization.logic, which is no longer exported by jablib's
module-info. Downstream modules can no longer call or implement this API under JPMS, which is a
breaking change for any consumer that previously used it.
Agent Prompt
## Issue description
`jablib` no longer exports `org.jabref.logic.ai.tokenization.logic`, but `org.jabref.logic.ai.chatting.ChatModel` (exported) exposes `TokenEstimator` in a public method signature. This makes `getTokenizer()` unusable from other modules and breaks any external implementations/callers.

## Issue Context
JPMS requires that types appearing in accessible public signatures across modules reside in exported packages.

## Fix Focus Areas
Choose one of:
1) Re-add `exports org.jabref.logic.ai.tokenization.logic;` (and possibly `...tokenization.util` if needed by the intended public surface).
2) Refactor `ChatModel` to avoid exposing `TokenEstimator` publicly (e.g., move token estimation behind methods on `ChatModel` that only use exported types).

- jablib/src/main/java/module-info.java[121-155]
- jablib/src/main/java/org/jabref/logic/ai/chatting/ChatModel.java[1-16]
- jablib/src/main/java/org/jabref/logic/ai/tokenization/logic/TokenEstimator.java[1-14]

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

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is intended

exports org.jabref.logic.ai.ingestion.util;
exports org.jabref.logic.ai.followup.tasks;
exports org.jabref.model.ai;
exports org.jabref.logic.ai.chatting.exporters;
exports org.jabref.logic.ai.summarization.exporters;
exports org.jabref.logic.ai.chatting.migrations;
exports org.jabref.logic.ai.summarization.migration;
exports org.jabref.logic.ai.summarization.util;
exports org.jabref.logic.ai.tokenization.util;
// endregion

requires java.base;
Expand Down
Loading