diff --git a/CLAUDE.md b/CLAUDE.md
index ee9f66d6..858c07ce 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -20,12 +20,11 @@ coordinates, package, goal prefix, and every `@Parameter` property changed in th
write `aiIndex.*` properties, the `ai-index` goal prefix, or the
`net.ladenthin.maven.llamacpp.aiindex` package in new documentation or code; use `srcmorph.*`,
`srcmorph`, and `net.ladenthin.maven.srcmorph.mojo` instead (see the plugin module's own section
-below). The `1.2.0` reactor release was published to Maven Central from the `v1.2.0` tag. **`main`
-currently sits at the plain release version `1.3.0`, not a `-SNAPSHOT`** — step 1 of
-`docs/RELEASE.md` (bump to the release version) is done and the `v1.3.0` tag has not been cut yet.
-Step 6 moves `main` on to the next `-SNAPSHOT` *after* the release: `main` must never again carry a
-version matching something already published, so a `-SNAPSHOT` on `main` is the normal state between
-releases, just not right now.
+below). The `1.3.0` reactor release was published to Maven Central from the `v1.3.0` tag, and `main`
+has since been moved on to `1.4.0-SNAPSHOT` (step 6 of `docs/RELEASE.md`). **A `-SNAPSHOT` on `main`
+is the normal state between releases** — `main` sits at a plain release version only in the short
+window between the release bump and the tag, which is exactly why that step exists: `main` must
+never again carry a version matching something already published.
**A fourth module existed temporarily**: a tiny relocation-stub POM
(`net.ladenthin:llamacpp-ai-index-maven-plugin`, pinned at `1.0.4`, only a
@@ -41,8 +40,8 @@ keep carrying it (and its `versions:set` exclusion footgun) in active developmen
- **Java:** target bytecode 1.8 (production code), Java 21 test sources, built with JDK 25
- **License:** Apache 2.0
- **Author:** Bernard Ladenthin (Copyright 2026)
-- **Reactor version:** `1.3.0` (single shared version across `srcmorph`, `srcmorph-cli`,
- and `srcmorph-maven-plugin`). Last released version: `1.2.0`.
+- **Reactor version:** `1.4.0-SNAPSHOT` (single shared version across `srcmorph`, `srcmorph-cli`,
+ and `srcmorph-maven-plugin`). Last released version: `1.3.0`.
---
@@ -309,7 +308,7 @@ mvn -pl srcmorph-maven-plugin srcmorph:generate -P srcmorph-selftest
```bash
mvn -pl srcmorph-cli package
-java -jar srcmorph-cli/target/srcmorph-cli-1.3.0-jar-with-dependencies.jar examples/config_All.json
+java -jar srcmorph-cli/target/srcmorph-cli-1.4.0-SNAPSHOT-jar-with-dependencies.jar examples/config_All.json
```
See `examples/` (repo root) for ready-to-run `config_*.json`/`.yaml` + paired `run_*.sh`/`.bat`
diff --git a/README.md b/README.md
index 4de56b7e..3ad1563a 100644
--- a/README.md
+++ b/README.md
@@ -223,7 +223,7 @@ on `main` with `publish_to_central` checked — not automatically on push:
https://central.sonatype.com/repository/maven-snapshots/net/ladenthin/
```
-Current reactor version: `1.3.0`. Last released version: `1.2.0`.
+Current reactor version: `1.4.0-SNAPSHOT`. Last released version: `1.3.0`.
## A Note on History
diff --git a/TODO.md b/TODO.md
index b39698eb..bccdd19a 100644
--- a/TODO.md
+++ b/TODO.md
@@ -35,18 +35,23 @@ everything below is genuinely still open.
no AMD, Intel or second GPU here. Vulkan is reachable on any NVIDIA box and is the cheapest one to
add next.
-- **Follow java-llama.cpp and drop the per-classifier fat jars? (owner's decision)** Since its
+- **Drop the fat jars in 1.4.0 (owner's decision, 2026-10-26).** 1.3.0 is the last release with
+ fat jars on GitHub; they were never on Central (`false`, `--maven-only`, and no
+ `"central": true` in `.github/release-assets.json`), so removing them touches only the GitHub
+ release. Users build their own jar locally, as `examples/windows-fatjar` shows. Since its
modular natives java-llama.cpp ships no fat jar at all: the thin jar on Central is the deliverable,
a GPU is `jbang --deps net.ladenthin:llama:: …`, and its smoke jobs launch the
published jars on the classpath a consumer resolves. The same shape fits `srcmorph-cli`
(`jbang net.ladenthin:srcmorph-cli: config.json` resolves slf4j-simple and llama-platform from its
- pom; a GPU is one more `--deps` jar) and would remove the 14 signed classifier fat jars per release,
- the loop above and the structural-only check. It would also close a gap the current shape has: the
+ pom; a GPU is one more `--deps` jar). Removing them drops the default and 14 signed classifier fat
+ jars per release, the build loop in `publish.yml`, `sign-fatjars.sh`, `verify-classifier-fatjars.sh`
+ and `.github/release-assets.json`'s file rules. It also closes a gap the current shape has: the
artifact `smoke-fatjar` launches is the fat jar built by the `build` job (a GitHub asset, rebuilt by
the publish jobs' loop), while the `srcmorph-cli` jar that goes to Central is never launched by any
- job -- a smoke over the thin jar plus its resolved runtime classpath (what java-llama.cpp's smoke
- sets are) would test what is published. Decide before the next release that bumps to a published
- llama 6.0.0; the classifier list is current for 6.0.0 either way.
+ job. The smoke has to move to the thin jar plus its resolved runtime classpath (what
+ java-llama.cpp's smoke sets are), so it tests what is published. `README.md`,
+ `srcmorph-cli/README.md`, `CLAUDE.md` and the eight `examples/run_*` scripts that name the fat jar
+ go with it.
- **jqwik pin policy** — see [`../workspace/policies/jqwik-prompt-injection.md`](../workspace/policies/jqwik-prompt-injection.md). `jqwik.version ≤ 1.9.3` is mandatory (declared in `srcmorph/pom.xml`, the only reactor module with a jqwik test dependency).
diff --git a/pom.xml b/pom.xml
index 1be22c9e..9087e74a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@ SPDX-License-Identifier: Apache-2.0
net.ladenthin
srcmorph-parent
- 1.3.0
+ 1.4.0-SNAPSHOT
pom
${project.groupId}:${project.artifactId}
diff --git a/srcmorph-cli/pom.xml b/srcmorph-cli/pom.xml
index 87162c2f..c9665126 100644
--- a/srcmorph-cli/pom.xml
+++ b/srcmorph-cli/pom.xml
@@ -13,7 +13,7 @@ SPDX-License-Identifier: Apache-2.0
net.ladenthin
srcmorph-parent
- 1.3.0
+ 1.4.0-SNAPSHOT
../pom.xml
@@ -62,7 +62,7 @@ SPDX-License-Identifier: Apache-2.0
3.10.4
2.102.0
- 2026-10-26T20:05:59Z
+ 2026-10-26T20:11:27Z
- 2026-10-26T20:05:59Z
+ 2026-10-26T20:11:27Z
diff --git a/srcmorph/pom.xml b/srcmorph/pom.xml
index f129b50d..9e9c3b3c 100644
--- a/srcmorph/pom.xml
+++ b/srcmorph/pom.xml
@@ -13,7 +13,7 @@ SPDX-License-Identifier: Apache-2.0
net.ladenthin
srcmorph-parent
- 1.3.0
+ 1.4.0-SNAPSHOT
../pom.xml
@@ -88,7 +88,7 @@ SPDX-License-Identifier: Apache-2.0
3.10.4
2.102.0
- 2026-10-26T20:05:59Z
+ 2026-10-26T20:11:27Z