โ† All digests
AI Developer Digest

Sun, May 17, 2026

5 signals that cleared the gate46 scanned16 min read
The Signal โ€” start here
Light 24-hour period: no new model releases, no lab announcements, no API breaking changes within the strict window. The single item every developer using the Gemini Interactions API must act on today: Google's outputs โ†’ steps schema switch defaults on May 26 โ€” 9 days away โ€” and the legacy schema is permanently removed June 8. Upgrading to Python SDK โ‰ฅ2.0.0 or JavaScript SDK โ‰ฅ2.0.0 handles the migration automatically. On the tooling front, llama.cpp shipped five Vulkan-focused builds today (b9193โ€“b9198) including an embedding-server correctness fix and an SSM_CONV kernel fusion delivering ~4% throughput improvement on Nemotron-class models.
Must-reads today
1
Gemini Interactions API schema migration โ€” outputs โ†’ steps defaults May 26; SDK โ‰ฅ2.0.0 auto-migrates; hard deadline June 8
2
llama.cpp b9193 embedding fix โ€” --embd-normalize was silently ignored by the server; if you serve embeddings via llama-server, verify your normalization behavior is correct post-update

Breaking Changes

1
โ—Breaking

Gemini Interactions API: `outputs` Array Replaced by `steps` Schema โ€” Default Switch May 26, Hard Removal June 8

What changed
The Interactions API v1beta response schema replaces the flat outputs array with a structured steps array. Each step carries a type discriminator (user_input, model_output, function_call, google_search_call, google_search_result), enabling full step-timeline retrieval via GET /interactions/{id}. A new response_format field replaces the previous fragmented output-control options. New API features released after May 7, 2026 are only available in steps responses โ€” staying on the legacy outputs schema means losing access to new capabilities as they ship.
TL;DR
Gemini Interactions API replaces outputs with steps on May 26 (default switch, 9 days) and June 8 (legacy removed, 22 days); Python SDK โ‰ฅ2.0.0 and JavaScript SDK โ‰ฅ2.0.0 auto-migrate with no code changes beyond updating response-reading logic.
Developer signal
There are two migration paths. SDK path (recommended): pip install --upgrade google-genai (or npm install @google/genai) to get Python โ‰ฅ2.0.0 / JS โ‰ฅ2.0.0. The SDK auto-opts into the new schema via the Api-Revision: 2026-05-20 header. You still need to update your response-parsing code: change all reads from response.outputs[0].content to iterating response.steps and filtering by step.type == "model_output". Manual API path: Add Api-Revision: 2026-05-20 to opt in now, or keep Api-Revision: 2026-05-07 to hold on legacy until June 8 โ€” but the latter blocks you from new features. Four code changes required regardless of path: (1) read content from steps not outputs; (2) handle all step type discriminators; (3) find function_call steps inside the steps array rather than a separate field; (4) update history management to pass the steps array in the input field of subsequent requests (GET /interactions/{id} returns the full timeline including the initial user_input step; POST /interactions returns only output steps). The new response_format field is a clean replacement for prior output-control parameters โ€” check the migration guide for the specific field remapping.


Affects you ifYou call the Gemini Interactions API (v1beta) directly or via an SDK; you parse response.outputs anywhere in your codebase; you pass history back into multi-turn interactions; you depend on function call or search grounding results from the Interactions API.EffortModerate (SDK upgrade is Quick; response-parsing code update required everywhere outputs is read; history management must be updated for multi-turn flows; end-to-end re-testing recommended before May 26).
Google AI for Developers | Date: Announced May 6, 2026 (deadline window: May 26 / June 8) | Link: https://ai.google.dev/gemini-api/docs/interactions-breaking-changes-may-2026https://ai.google.dev/gemini-api/docs/interactions-breaking-changes-may-2026

Model Releases

Nothing in the scan window.


API & SDK Changes

Nothing in the scan window. (Anthropic platform release notes: last entry May 12. OpenAI platform changelog: last entry May 12. Mistral, xAI, Cohere: no new entries within 24h.)


Research

Nothing cleared the quality bar this period. arXiv cs.CL/cs.AI submissions on May 17 lacked recognized-lab authorship with associated code repositories. Hugging Face Papers Daily returned 403 at fetch time. Papers With Code showed no new SOTA entries within the window.


Tooling

2
Notable

llama.cpp b9193 โ€” Server Embedding Endpoint Now Respects `--embd-normalize` Flag

What changed
Previously, the --embd-normalize CLI flag (which controls L2 vs cosine vs raw normalization for embedding outputs) was accepted at startup but silently ignored by the /embeddings server endpoint โ€” the endpoint always returned its own normalization behavior regardless of the configured flag. The fix propagates the flag into the endpoint's computation path.
TL;DR
llama.cpp b9193 (May 17) fixes a silent misconfiguration bug: if you set --embd-normalize 0 (raw) or --embd-normalize 1 (max-absolute) to get un-normalized embeddings from llama-server, it now actually works.
Developer signal
If you run llama-server as an embedding backend for a RAG pipeline, semantic search index, or similarity system, check which normalization your downstream code assumes. The default --embd-normalize 2 (L2) was already the server's implicit behavior, so if you never set this flag, nothing changes. The bug bites in two cases: (1) you set --embd-normalize 0 to get raw logits for custom normalization and were silently getting L2-normalized vectors instead โ€” your similarity scores were consistent but not what you configured; (2) you set --embd-normalize 1 for max-absolute normalization and got L2 instead. After updating to b9193, re-generate any stored embeddings that were produced with a non-default --embd-normalize flag, since they were computed with the wrong normalization. If you use default settings, no action needed.


Affects you ifYou run llama-server as an embedding server with a non-default --embd-normalize value; you built a RAG index using llama-server embeddings and explicitly set --embd-normalize 0 or 1.EffortQuick (update to b9193 or later; re-generate embeddings only if you used a non-default --embd-normalize flag โ€” verify with a spot-check comparison).
ggml-org/llama.cpp (GitHub) | Date: May 17, 2026 14:10 UTC | Link: https://github.com/ggml-org/llama.cpp/releases/tag/b9193https://github.com/ggml-org/llama.cpp/releases/tag/b9193
Notable

llama.cpp b9194 โ€” Vulkan SSM_CONV + BIAS + SILU Kernel Fusion, ~4% Throughput Improvement on Nemotron SSM Models

What changed
Fused a three-operation sequence (SSM_CONV convolution + ADD bias + SILU activation) into a single Vulkan kernel, following the same pattern as prior fusion work in PR #22478. Merged on May 17 as PR #22653.
TL;DR
llama.cpp b9194 (May 17) delivers ~4% token-generation throughput improvement for State Space Model architectures (confirmed on Nemotron-3-Nano-30B) via Vulkan kernel fusion, improving from ~273 tok/s to ~284 tok/s on an RTX 5090; prompt processing throughput is essentially unchanged.
Developer signal
The improvement is Vulkan-backend-specific and SSM-architecture-specific. The confirmed beneficiary is the Nemotron-3-Nano-30B model family. Other models using SSM_CONV operations (primarily Mamba and Mamba-2 based architectures) may see similar gains โ€” check if your GGUF includes SSM_CONV layers. To benefit: update to b9194 or later and ensure you're using the Vulkan backend (--gpu-layers <N> with Vulkan-enabled binary). CUDA and Metal backends are unaffected by this specific PR. The ~4% gain is modest โ€” comparable to a free speed tier bump between Vulkan backend versions. If you run Nemotron-class models on Vulkan, the update is worthwhile with zero configuration change.


Affects you ifYou run llama-server with a Vulkan backend on SSM-architecture models, specifically Nemotron-3-Nano or other Mamba-based GGUFs.EffortQuick (update binary; no configuration changes).
ggml-org/llama.cpp (GitHub) | Date: May 17, 2026 16:06 UTC | Link: https://github.com/ggml-org/llama.cpp/releases/tag/b9194https://github.com/ggml-org/llama.cpp/pull/22653

Benchmarks & Leaderboards

No leaderboard changes confirmed in the 24-hour scan window. Standing reference from prior digest (May 16): SWE-bench Verified โ€” Claude Mythos Preview 93.9%, Claude Opus 4.7 (Adaptive) 87.6%, GPT-5.3 Codex 85.0% (as of May 15 update, confirmed via llm-stats.com and search snippets; swebench.com returned 403). LMArena Text leaderboard โ€” Claude Opus 4.6 at Elo ~1504 (#1), Gemini 3.1 Pro Preview and Claude Opus 4.6 Thinking statistically tied at #2โ€“3 within overlapping 95% confidence intervals; no movements reported in the 24h window.


Technical Discussions

Nothing cleared the quality bar this period. Hacker News had no AI-focused Show HN or Ask HN posts above 200 points within the 24-hour window. Simon Willison's most recent post (May 14, "Not so locked in any more") covers coding agents reducing technology lock-in โ€” interesting framing but no new technical data and outside the scan window.


Quick Hits


Worth Watching (Announced, Not Yet Shipped)

1

Ollama v0.30.0-rc17 โ€” Architecture Shift to Direct llama.cpp Backend (Pre-Release)

(Carried from May 15 digest โ€” still pre-release, feedback actively requested)

Ollama's v0.30.0 pre-release restructures to use llama.cpp directly as its inference engine instead of building on GGML separately, enabling native GGUF format compatibility without an intermediate layer. MLX used directly for Apple Silicon inference. Currently two models unsupported (laguna-xs.2, llama3.2-vision). The team is actively requesting feedback on performance changes, new errors or crashes, and memory utilization differences versus v0.24.x.



Ollama (GitHub) | Date: May 13, 2026 | Link: https://github.com/ollama/ollama/releases/tag/v0.30.0-rc17

Filtered from 30+ primary sources against a published quality rubric. No press releases, no fluff โ€” only what changes what you build.