Skip to content

v0.7.12 — coordinated stable release

Released: 2026-05-26 · Codename: Stable Foundations

Why v0.7.12 matters

v0.7.12 is the largest release since the project began — a single, coordinated promotion that takes every alpha/beta provider to its first stable line and ships the cross-cutting native-tool observability that powers it. After this release the project returns to a bug-fix / single-provider cadence.

Highlights

  • 🟢 Five packages graduate to Stable (Development Status :: 5 - Production/Stable) in one release: nucleusiq-anthropic 0.2.0, nucleusiq-ollama 0.2.0, nucleusiq-groq 0.1.0, nucleusiq-mcp 0.1.0. Core (nucleusiq 0.7.12) and the already-stable nucleusiq-openai 0.7.0 / nucleusiq-gemini 0.3.0 ship aligned, with every provider flooring on nucleusiq>=0.7.12.
  • 🧠 Anthropic Phase B feature-completeAnthropicTool.web_search() / web_fetch() / code_execution(), prompt caching (cache_system / cache_tools), extended thinking (thinking="low"|"medium"|"high"|"max"), and strict_tools / disable_parallel_tool_use. Backed by 6 live integration tests against the real Anthropic API.
  • 🔎 Native-tool observability in core — every traced tool call carries executed_by: Literal["local", "provider"]; LLMCallRecord gains provider, request_id, organization_id, stop_reason, cache_read_input_tokens, cache_creation_input_tokens, and a generic metadata dict. Populated by every provider in this release.
  • 👁️ Ollama vision wire — multimodal content lists with image_url parts are split into Ollama's message.content + message.images fields, with data: URL decoding and HTTP-URL warnings.
  • 3 705+ tests passing across the monorepo — including 79 Groq, 98 Ollama, 151 Anthropic + 6 live, 232 OpenAI, 292 Gemini, and 235 MCP unit tests.

Package matrix

Package Before Now Status Floor
nucleusiq 0.7.11 0.7.12 🟢 Core release
nucleusiq-anthropic 0.1.0a1 (alpha) 0.2.0 🟢 Stable nucleusiq>=0.7.12
nucleusiq-ollama 0.1.0a1 (alpha) 0.2.0 🟢 Stable nucleusiq>=0.7.12
nucleusiq-groq 0.1.0b1 (beta) 0.1.0 🟢 Stable nucleusiq>=0.7.12
nucleusiq-mcp 0.1.0b1 (beta) 0.1.0 🟢 Stable nucleusiq>=0.7.12
nucleusiq-openai 0.6.4 0.7.0 🟢 Stable nucleusiq>=0.7.12
nucleusiq-gemini 0.2.6 0.3.0 🟢 Stable nucleusiq>=0.7.12

Anthropic 0.2.0 Stable — Phase B feature-complete

What's new

nucleusiq-anthropic graduates from alpha to Production/Stable with full Phase B support. 151 unit tests + 6 live integration tests, 95.91% coverage (gate ≥ 95%).

Capability API surface
Native server tools AnthropicTool.web_search() · AnthropicTool.web_fetch() · AnthropicTool.code_execution()
Prompt caching AnthropicLLMParams(cache_system=True, cache_tools=True)
Extended thinking AnthropicLLMParams(thinking="low"\|"medium"\|"high"\|"max")
Strict tools AnthropicLLMParams(strict_tools=True)
Single-tool turn AnthropicLLMParams(disable_parallel_tool_use=True)
Server-tool observability AnthropicLLMResponse.server_tool_calls: list[ServerToolCall] (auto-emitted as ToolCallRecord(executed_by="provider"))
LLMCallRecord enrichment provider, request_id, organization_id, stop_reason, cache_read_input_tokens, cache_creation_input_tokens

Live integration tests (6 / 6 passing)

Test Validates
test_live_web_search_emits_server_tool_calls web_search server-tool emission
test_live_code_execution_emits_server_tool_calls_with_result code_execution round-trip + result parsing
test_live_prompt_caching_reads_cache_on_second_call Cache write → cache read on consecutive calls
test_live_extended_thinking_completes[low] Thinking budget low (2 000)
test_live_extended_thinking_completes[medium] Thinking budget medium (8 000)
test_live_disable_parallel_tool_use_emits_single_tool_call Single-tool turn semantics

Default model: claude-sonnet-4-5-20250929 (override with ANTHROPIC_PHASE_B_MODEL=<id>).

→ Deep-dive guides: Native server tools · Prompt caching · Extended thinking.

Ollama 0.2.0 Stable — vision wire

OpenAI-style multimodal messages now work natively

nucleusiq-ollama/_shared/wire.py adds _split_data_url and _extract_text_and_images helpers; sanitize_messages now produces:

# in:
{"role": "user", "content": [
    {"type": "text", "text": "What's in this image?"},
    {"type": "image_url", "image_url": {"url": "data:image/png;base64,iVBORw0K..."}},
]}
# out (Ollama wire shape):
{"role": "user", "content": "What's in this image?", "images": ["iVBORw0K..."]}
  • Direct images arrays pass through untouched.
  • Raw-string images entries are accepted.
  • data:image/...;base64,... URLs are decoded.
  • HTTP image URLs trigger a warning and are dropped — NucleusIQ does not fetch remote images on your behalf.

98 unit tests, 99.85% coverage. Vision now requires a multimodal Ollama model (llama3.2-vision, llava, bakllava, …).

→ See the Ollama provider guide.

Native-tool observability (cross-cutting)

One observability signal across every provider

Adding ToolCallRecord.executed_by makes it trivial to split locally-run vs provider-run tools — no matter which LLM the agent used:

local    = [tc for tc in result.tool_calls if tc.executed_by == "local"]
provider = [tc for tc in result.tool_calls if tc.executed_by == "provider"]
Provider Native tool wire types surfaced
Anthropic server_tool_use + per-tool *_tool_result (e.g. code_execution_tool_result, web_search_tool_result)
OpenAI web_search_call, code_interpreter_call, file_search_call, computer_use_call, image_generation_call
Gemini executable_code + code_execution_result (paired → code_execution), grounding_metadata (→ google_search)
Groq message.executed_tools parsed into GroqLLMResponse.server_tool_calls (stub today; full hosted-tool Responses API in 0.2.x)

→ See Native server tools and Observability.

Migration from v0.7.11

Zero breaking changes

v0.7.12 is additive only for application code. All new fields default to safe values (executed_by="local", cache_*_tokens=0, optional strings = None).

The only required action is to bump pins:

pip install -U \
    "nucleusiq>=0.7.12,<0.8" \
    "nucleusiq-openai>=0.7.0,<0.8" \
    "nucleusiq-gemini>=0.3.0,<0.4" \
    "nucleusiq-anthropic>=0.2.0,<0.3" \
    "nucleusiq-groq>=0.1.0,<0.2" \
    "nucleusiq-ollama>=0.2.0,<0.3" \
    "nucleusiq-mcp>=0.1.0,<0.2"

Test gate

Suite Tests Coverage
nucleusiq core 1 543 unit ≥ 95%
nucleusiq-openai 232 unit ≥ 95%
nucleusiq-gemini 292 unit ≥ 95%
nucleusiq-anthropic 151 unit + 6 live integration 95.91%
nucleusiq-groq 79 unit 92.51%
nucleusiq-ollama 98 unit 99.85%
nucleusiq-mcp 235 unit + 13 live integration 98.68%

→ Full per-package breakdown lives in the Changelog and the monorepo CHANGELOG.md.

What's next

After v0.7.12 the project returns to a bug-fix / single-provider cadence:

  • nucleusiq-anthropic 0.3.x — Phase C (Memory tool, computer_use, bash).
  • nucleusiq-groq 0.2.x — Groq Responses API + hosted tools.
  • nucleusiq-mcp 0.2.x — MCP resources & prompts, sampling, progress callbacks.
  • nucleusiq 0.7.13+ — operational polish, bug fixes, retry tuning.

See also