Skip to content

Prepare Atomic Agents 2.12.0 - #305

Merged
Eigenwise merged 25 commits into
mainfrom
maintenance/pr-triage-2026-10-04
Oct 15, 2026
Merged

Eigenwise merged 25 commits into
mainfrom
maintenance/pr-triage-2026-10-04

Conversation

@Eigenwise

@Eigenwise Eigenwise commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Retargeted 2026-10-15: 2.11.0 shipped from main with Phoenix tracing, so this branch now merges main and prepares 2.12.0. Map conflicts resolved by taking main's docs and re-adding this branch's notes. black, flake8 and 618 core tests green after the merge.

Prepares the 2.12.0 release candidate: reviewed main plus the maintenance fixes from the October PR triage. Not published yet; the version bump and draft notes are in .release/2.12.0.md.

Changes

  • MCP: paginated discovery of tools, resources and prompts; template continuation errors propagate.
  • MCP: schema references to non-object definitions and escaped definition names resolve.
  • MCP: JSON text fallback when a real SDK result has no structured content; present structured content (including empty values) keeps precedence.
  • MCP: server error results (isError) raise RuntimeError before output parsing, with text-only diagnostics. Application outputs that merely contain an isError field stay data. Based on fix(mcp): surface tool execution errors from MCP results #295 by @pei711.
  • Incoming message counted in the context token budget.
  • Chat history survives loading invalid serialized data.
  • YouTube transcript tool updated for youtube-transcript-api 1.x.
  • Mocked regression tests for agent, history, schema and MCP transport behavior; synthetic coverage instrumentation removed.
  • Docs: "Tool Results and Errors" section in the MCP example guide.

Known issue (upstream)

A fresh install resolving litellm 1.104.x with tiktoken 0.14.x needs network access on the first get_context_token_count() call, because tiktoken rejects litellm's bundled tokenizer files and downloads them. Noted in the release notes.

Verification

  • Core suite on 0a2b0bc: 573 passed, 3 live-provider skips; 1571/1571 statements covered, 29 partial branches.
  • Black (line length 127) and Flake8 clean across all four directories.
  • Forge suites for the new tools: FXMacroData 85 passed, Firecrawl 159 passed (loopback servers, no vendor calls).
  • Sphinx HTML build: exit 0, 42 pre-existing warnings.
  • Wheel and sdist built from a frozen archive of 0a2b0bc, each installed into a fresh environment: imports, version, atomic --version, uv pip check, three quickstart flows with a mocked provider and the headless assembler menu all pass with zero HTTP sends.
  • Python 3.13.11 only; 3.12 not exercised locally. Fresh installs used declared requirements, not uv.lock pins.

🤖 Generated with Claude Code

Eigenwise and others added 25 commits October 4, 2026 14:04
Co-Authored-By: Claude Code <noreply@anthropic.com>
Assert inherited and parameterized schema identities, metadata defaults and
independent overrides, and concrete generate results in 13 focused tests.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Add missing-LiteLLM error assertions and None/integer model guard cases.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Exercise malformed transport rejection and cleanup across all fetch methods.
Pin mocked mapping-adapter resource conversion and unsupported-entry errors.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Exercise generated tools through mocked transports and persistent sessions.
Check SDK structured output and reject persistent construction without a loop.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Keep structured, text, mapping and generic result paths in typed private operations.
Preserve native invalid-input calls and existing exception wrapping.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Select only non-None model structured content before validated text fallback.
Add real SDK regressions for integer output, precedence and rejection paths.

Co-Authored-By: Claude Code <noreply@anthropic.com>
The locked youtube-transcript-api 1.2.3 only exposes fetch/list on a
YouTubeTranscriptApi instance; the class-level get_transcript the tool
called is gone, so run() raised AttributeError. Fetch through an
instance now and read the FetchedTranscript via to_raw_data(), which
keeps the text join and duration sum unchanged. Explicit language still
goes through as a one-item priority list and the no-language case keeps
the library default.

Tests patch fetch with autospec and feed real FetchedTranscript objects
so the conversion runs against the installed package; they also pin the
fetch call shape for the default and explicit-language paths.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…nce/pr-triage-2026-10-04

Co-Authored-By: Claude Code <noreply@anthropic.com>
Merge the retained source after independent immutable-snapshot review. Preserve empty structured payload precedence and existing mapping errors.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Merge main at 4d44347 with the retained MCP and YouTube fixes. Combined core tests, formatting and lint pass on the assembled tree.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Bump the workspace package version and draft notes for the assembled changes. The lockfile check and HTML and single-page documentation builds pass; documentation warnings remain recorded.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Document the new Forge tools and current MCP, history and token behavior. Keep the prepared source version separate from publication state and refresh the map hashes.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Reject SDK and validated mapping error envelopes before output parsing.
Keep raw dictionary collisions and session ownership behavior covered.

Delivered from Sidequest SQ-69 candidate b20138cdc0b7a8c8aa21825f62f07c0920839dca
after the independent SQ-72 review accepted it. Merged-tree gate: 556 passed,
3 live skips, Black and Flake8 clean.

Co-Authored-By: pei711 <199601925+pei711@users.noreply.github.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The known issue was observed in fresh wheel and sdist installs on 2026-10-14:
litellm 1.104.2's bundled tokenizer files fail tiktoken 0.14.0's hash check,
so the first token count tries to download them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Delivered from Sidequest SQ-74 candidate 543681692589fd13eec0d61dc8b1a18de1c4d4b0.
Sphinx html build on the delivered tree: exit 0, 42 warnings, the only one
naming mcp_agent.md being the pre-existing orphan toctree warning.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Exercise SDK and adapter outputs, transport rejection, context closure,
and dotted URI template fallback through the real definition service.

Delivered from Sidequest SQ-70 candidate 3a6828d6f37c7bb0be4be33460f9ac4bb649f4ed.
Merged-tree gate: 573 passed, 3 live skips, 1571/1571 core statements covered,
29 partial branches, Black and Flake8 clean.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Resolves the codebase-map conflicts by taking main's docs and re-adding
this branch's MCP, forge and YouTube notes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2.11.0 was released from main on 2026-10-15 with Phoenix tracing, so this
branch's prepared version moves to 2.12.0 and the draft notes drop the
forge tools that already shipped.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Eigenwise Eigenwise changed the title Prepare Atomic Agents 2.11.0 Prepare Atomic Agents 2.12.0 Oct 15, 2026
@Eigenwise
Eigenwise merged commit 9e56b85 into main Oct 15, 2026
1 check passed
@Eigenwise
Eigenwise deleted the maintenance/pr-triage-2026-10-04 branch October 15, 2026 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant