TODO — srcmorph reactor (Maven plugin now srcmorph-maven-plugin, formerly llamacpp-ai-index-maven-plugin)
Open work items for this repo. Cross-cutting tracking lives in
../workspace/crossrepostatus.md; items here are
repo-specific or this repo's slice of a cross-cutting initiative.
Completed work is not recorded here. It lives in git history and in
crossrepostatus.md; a finished item is deleted from this file rather than annotated, so
everything below is genuinely still open.
-
The sixteen GPU classifier fat jars are verified structurally, never launched. Since 1.2.0
.github/verify-classifier-fatjars.shasserts each is the artifact its name claims (one jar per classifier, a native for the promised OS/arch, a native set that differs from the default jar's, so a broken-Dllama.classifier=cannot silently ship seventeen CPU builds). What it cannot assert is that the jar works: a GitHub-hosted runner has no CUDA/ROCm/SYCL/OpenVINO device, and the only command that would load the native library is a real generation. Closing this needs hardware — a self-hosted runner, or a manual pre-release pass on one GPU box per backend. Worth knowing which half is covered before reading the green check as "the CUDA jar runs". -
jqwik pin policy — see
../workspace/policies/jqwik-prompt-injection.md.jqwik.version ≤ 1.9.3is mandatory (declared insrcmorph/pom.xml, the only reactor module with a jqwik test dependency). -
@VisibleForTestingaudit. Nothing is annotated, but the members exist:provider.LlamaCppJniAiGenerationProviderhas four (buildChatTemplateKwargs,buildInferenceParameters,warnOnTruncatedAnswer,logPromptCacheReuse) plus the statictensorReadLazyMode/cacheType,document.AiMdDocumentCodechasread(List)/write,prompt.AiPromptPreparationSupporthastrimSourceAtLineBreak, and the three mojos have theirbuild*Configuration(). Guava is not a dependency, so closing this means either a project-local marker annotation (there is precedent:support.ConvertToRecord) or recording that the convention is not adopted here. Decide and act rather than re-auditing. -
Null-safety refinement. JSpecify + NullAway are enforced at compile time in strict JSpecify mode in every module (see each module's own
pom.xml);@NullMarkedon the package; framework-populated POJOs carry class-level@SuppressWarnings({"NullAway.Init","initialization.fields.uninitialized"}). Open follow-up: review remaining unannotated public API surfaces for places where@Nullablewould be more precise than the implicit non-null default. -
Cross-repo code-quality TODOs — see
../workspace/policies/code-quality-todos.mdfor the canonical@VisibleForTestingdesign-fit review, package hierarchy review, and class/method naming review. This repo has no@VisibleForTestingusages today; the package and naming reviews are still open here.