Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ci(windows): pull Gemma via server API, not the lemonade CLI#1715

Merged
itomek merged 1 commit into
mainfrom
tmi/ci-windows-gemma-api-pull
Jun 18, 2026
Merged

ci(windows): pull Gemma via server API, not the lemonade CLI#1715
itomek merged 1 commit into
mainfrom
tmi/ci-windows-gemma-api-pull

Conversation

@itomek

@itomek itomek commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to #1712, which auto-merged at its first commit and left main with a raw lemonade pull Gemma-4-E4B-it-GGUF in both Windows integration jobs. On the runners that 400s — When registering a new model, the model name must include the user namespace — so the Agent SDK and GAIA CLI Windows jobs fail at the model-pull step before any test runs.

This routes the pull through POST /api/v1/pull on the already-running server — the same mechanism the green test_api.yml uses — and fails loudly if the request errors.

Root cause

Gemma-4-E4B-it-GGUF is a genuine built-in of the Lemonade server's catalog at v10.7.0 (recipe llamacpp). The failure is not the model or the version — on a clean 10.7.0 install the CLI pull even works. The runner's failure log showed two lemonade installs on PATH (...\systemprofile\... and C:\Users\user\...); lemonade pull resolved to one whose catalog doesn't carry Gemma-4, so it fell into the "register a new model" path. Pulling through the running server's API removes the dependency on whichever lemonade CLI happens to be first on PATH.

Verified on a 10.7.0 box (version parity with CI)

  • POST /api/v1/pull {model_name: Gemma-4-E4B-it-GGUF}{"status":"success"}
  • Gemma-4-E4B loads on 10.7.0's llama.cpp (AMD Radeon) → Model loaded: Gemma-4-E4B-it-GGUF
  • test_agent_sdk.py (GAIA_TEST_MODEL=Gemma-4-E4B-it-GGUF) → Ran 8 tests in 28.761s / OK

Test plan

  • Test Agent SDK on Windows (Lemonade Integration) — model-pull step succeeds via the API and the integration tests run
  • Test GAIA CLI on Windows (Full Integration) — model-pull step succeeds and the tests run

PR #1712 switched the Windows Agent SDK and CLI jobs to Gemma-4-E4B-it-GGUF
but auto-merged at the first commit, landing a raw `lemonade pull
Gemma-4-E4B-it-GGUF` that 400s on the 10.7.0 runners with "When
registering a new model, the model name must include the `user`
namespace". The model IS a built-in of the C++ Lemonade server's catalog
(recipe llamacpp), but the standalone `lemonade` CLI consults a separate
registry that does not carry it. Route the pull through /api/v1/pull on
the already-running server, matching the green test_api.yml pattern, and
fail loudly if the request errors.
@itomek itomek added the ready_for_ci Run CI workflows on draft PR without requesting review label Jun 17, 2026
@github-actions github-actions Bot added the devops DevOps/infrastructure changes label Jun 17, 2026
@itomek itomek marked this pull request as ready for review June 17, 2026 23:52
@itomek itomek requested a review from kovtcharov-amd as a code owner June 17, 2026 23:52
@github-actions

Copy link
Copy Markdown
Contributor

Summary

Clean, correctly-scoped CI fix. It replaces the broken lemonade pull Gemma-4-E4B-it-GGUF CLI call (which 400s on the 10.7.0 runners because the standalone CLI's registry requires a user. namespace) with a POST /api/v1/pull against the already-running server — exactly the mechanism the green test_api.yml/test_rag.yml/test_embeddings.yml jobs use. The single most important thing: the change matches the established pattern precisely (port 13305, model_name body, /api/v1/pull) and fails loudly on error, so there's nothing blocking here.

I verified the port and request shape against the rest of .github/workflows/: 13305 is the same port both modified files already use for their health checks (test_agent_sdk.yml:86, test_gaia_cli_windows.yml:95), and the model_name JSON body is identical to every other API-driven pull in the repo.

Issues Found

🟢 Minor — error handling is stricter than the reference job, which is good but worth a glance (test_agent_sdk.yml:28, test_gaia_cli_windows.yml:69)
The catch { ...; throw } here surfaces pull failures and kills the step, whereas test_api.yml:127 only emits a [WARN] and continues. Failing loudly is the correct choice (and aligns with CLAUDE.md's no-silent-fallbacks rule) — just flagging the intentional divergence so it isn't "fixed" later to match the warn-only job. No change requested.

🟢 Minor — identical block duplicated across two files (test_agent_sdk.yml:16-32, test_gaia_cli_windows.yml:57-73)
The two pull blocks are now byte-identical. Not actionable in this PR — GitHub Actions has no shared-step mechanism short of a composite action, and the rest of the repo's Windows jobs duplicate their Lemonade setup the same way. Mentioning only as a future consolidation candidate, not a blocker.

Strengths

  • Pattern reuse over invention — routes through the same server API the passing workflows already rely on, rather than a new bespoke mechanism.
  • Fails loudly — the throw on a failed pull means a broken model fetch surfaces immediately instead of cascading into confusing downstream test failures.
  • Good comment hygiene for CI — the multi-line WHY block explaining the CLI-registry 400 is exactly the kind of non-obvious gotcha worth documenting inline; it'll stop someone reverting to lemonade pull.
  • Tight, focused diff — two files, one logical change, clear conventional-commit title, and an accurate description tracing the regression back to ci(windows): pull Gemma-4-E4B instead of legacy Llama-3.2-3B-Hybrid #1712.

Verdict

Approve. No blocking issues; the two minor notes are observational, not change requests. Once both Windows integration jobs go green on this branch, this is ready to merge.

@itomek itomek enabled auto-merge June 18, 2026 00:08
@itomek itomek added this pull request to the merge queue Jun 18, 2026
Merged via the queue into main with commit d9f929d Jun 18, 2026
33 of 35 checks passed
@itomek itomek deleted the tmi/ci-windows-gemma-api-pull branch June 18, 2026 00:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devops DevOps/infrastructure changes ready_for_ci Run CI workflows on draft PR without requesting review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants