Skip to content

Commit b31a52a

Browse files
Merge pull request #459 from bernardladenthin/claude/busy-archimedes-lo9uyy
ci(smoke-agent-linux): waive JLine's Java 22 FFM provider in the bytecode gate
2 parents d5d7ec5 + a4329bf commit b31a52a

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

‎.github/workflows/publish.yml‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3721,8 +3721,16 @@ jobs:
37213721
distribution: 'temurin'
37223722
java-version: ${{ env.JAVA_VERSION }}
37233723
# The agent is Java 21 (Atmosphere's floor), unlike the Java 8 core: its ceiling is 65.
3724+
# One waiver: JLine ships its FFM terminal provider (org/jline/terminal/impl/ffm, 25 classes)
3725+
# as Java 22 bytecode. It is discovered through META-INF/jline/providers/ffm, not loaded
3726+
# eagerly: on Java 21 JLine picks its JNI provider, and a forced FFM provider falls back to a
3727+
# dumb terminal instead of failing (verified on 21.0.10). Only that package is waived, so
3728+
# any other class above 65 still fails the gate.
37243729
- name: Verify Java 21 bytecode (no class newer than major 65)
3725-
run: .github/verify-bytecode-version.sh --max-major 65 agent-assets/llama-atmosphere-agent-*-jar-with-dependencies.jar
3730+
run: >
3731+
.github/verify-bytecode-version.sh --max-major 65
3732+
--allow 'llama-atmosphere-agent-*:org/jline/terminal/impl/ffm/*'
3733+
agent-assets/llama-atmosphere-agent-*-jar-with-dependencies.jar
37263734
- name: Run the agent release-jar smoke test
37273735
run: .github/smoke-agent-jar.sh agent-assets "models/${TOOL_MODEL_NAME}"
37283736
- name: Upload agent logs

‎CLAUDE.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2223,7 +2223,7 @@ CI wiring (`publish.yml`): the model-free job builds it, writes the `.sha256` an
22232223
directory next to `llama-fatjars`, so `sign-fatjars.sh` signs it (`*-jar-with-dependencies*.jar`) and
22242224
the one upload attaches it. **`smoke-agent-linux`** (`.github/smoke-agent-jar.sh`) runs the asset the
22252225
way the README tells a user to — `java -jar` next to the real `all-linux-x86-64` fat jar — and checks:
2226-
bytecode ≤ 65 (Java 21, unlike the core's 52), that the jar started **alone** fails with
2226+
bytecode ≤ 65 (Java 21, unlike the core's 52 — with one `--allow` for JLine's FFM terminal provider `org/jline/terminal/impl/ffm/*`, 25 classes shipped as Java 22 bytecode that JLine discovers through `META-INF/jline/providers/ffm` and never loads on 21, where it picks its JNI provider; the first CI run of the smoke caught them), that the jar started **alone** fails with
22272227
`NoClassDefFoundError: net/ladenthin/llama/LlamaModel` (i.e. it really carries no core), `--help`, a
22282228
one-shot `2 + 2` answer and a `read_file` round that must surface a marker from `--workspace`, all on
22292229
the cached `TOOL_MODEL_NAME` with `--ngl 0`. **All three agent jobs gate both publish jobs**

0 commit comments

Comments
 (0)