Skip to the content.

The Python AI stack after each model’s training cutoff · September 2026, re-run with since-cutoff 0.6 in October 2026 · since-cutoff on GitHub

A coding model’s training data ends at some date; the libraries it writes against keep changing after it. To see how far, I pinned 36 widely used Python AI and LLM libraries at their releases of 26 September 2026 (the list) and ran since-cutoff scan against the training cutoff of 21 models from 8 vendors: OpenAI, Anthropic, Google, xAI, DeepSeek, Qwen, Moonshot and Mistral. For each library, the scan takes the comparison release, the latest one published at least 30 days before the model’s training cutoff, and diffs its public API against the pinned release, statically. No model was called for this page.

The scan was first run with since-cutoff 0.2.0 in September 2026, again with 0.5.0 on 10 October 2026, and with 0.6 on 17 October 2026, on the same pins; the table and the chart are from the 0.6 run. Two things in 0.6 move the counts most. The earlier runs compared from the latest release on or before the cutoff; 0.6 compares from 30 days before it, so a release from a model’s last month before its cutoff counts as one it may not know well, and the counts are of changes made after that day, 30 days before the cutoff. And 0.6 counts changes to public APIs only, where the earlier runs counted every change. Its diff also sees more kinds of change and reports fewer false removals, which rarely alters whether a library has at least one. For 11 of the 21 models the number of libraries with a public API break is the same as in the 0.5.0 run, for 5 it is higher and for 5 lower, by 1 to 3 libraries; the largest change is Claude Opus 5.5’s, 23 instead of 20.

Bar chart: for each of 21 models, how many of the 36 libraries broke their public API and how many are on a new major version since 30 days before the model's training cutoff. From 21 of 36 for GPT-4o (13 of its libraries did not exist yet) to 33 of 36 for models with cutoffs from February to July 2025, down to 23 of 36 for Claude Opus 5.5 (June 2026).

What it shows

By model

model vendor training cutoff compared from releases up to new release since (of 36) did not exist yet new major version public API breaks new deprecations
gpt-4o OpenAI 2023-09-30 2023-08-31 36 13 15 21 6
gpt-4.1 OpenAI 2024-04-30 2024-03-31 36 7 19 27 11
o3 OpenAI 2024-05-31 2024-05-01 36 6 19 28 11
gpt-5 OpenAI 2024-09-30 2024-08-31 36 4 18 29 12
kimi-k2 Moonshot 2024-10-31 2024-10-01 36 4 18 29 12
mistral-large-latest Mistral 2024-11-30 2024-10-31 36 4 18 30 12
gemini-2.5-pro Google 2025-01-31 2025-01-01 35 1 20 32 13
claude-haiku-4-5 Anthropic 2025-02-28 2025-01-29 35 0 21 33 13
qwen3-coder Qwen 2025-04-30 2025-03-31 35 0 21 33 13
claude-opus-4-6 Anthropic 2025-05-31 2025-05-01 35 0 20 33 14
deepseek-v4-flash DeepSeek 2025-05-31 2025-05-01 35 0 20 33 14
claude-sonnet-4-5 Anthropic 2025-07-31 2025-07-01 35 0 20 33 14
gpt-5.4 OpenAI 2025-08-31 2025-08-01 35 0 20 32 15
gpt-5.5 OpenAI 2025-12-01 2025-11-01 34 0 14 30 13
devstral-medium-latest Mistral 2025-12-31 2025-12-01 34 0 13 29 13
claude-opus-4-7 Anthropic 2026-01-31 2026-01-01 34 0 13 29 12
grok-4.6 xAI 2026-02-01 2026-01-02 34 0 13 29 12
gemini-3.7-flash Google 2026-03-31 2026-03-01 34 0 11 26 11
gpt-6-sol OpenAI 2026-04-20 2026-03-21 34 0 10 25 12
grok-4.7 xAI 2026-05-31 2026-05-01 34 0 10 24 11
claude-opus-5-5 Anthropic 2026-06-30 2026-05-31 31 0 8 23 11

“Compared from releases up to” is the training cutoff minus the 30-day margin: each library’s comparison release is its latest release published on or before that day. “New release since” includes the libraries that did not exist yet. “Public API breaks” counts libraries with at least one public name or parameter removed, moved, newly required or changed in kind; “new deprecations” counts libraries that newly mark a public API as deprecated. Each change is public or internal (internal: not reached from the package’s top level, named in an __all__ or documented), and both columns count public changes only. Counting every change, as the 0.5.0 run did, would add one or two libraries with a break for Gemini 3.7 Flash, GPT-6 Sol, Grok 4.7 and Claude Opus 5.5, and one with new deprecations for GPT-4o.

What this does and does not say

Reproduce it

The pinned requirements file and the script that builds this page’s table and chart are in examples/ai-stack. No API key is needed: scan makes no model calls.

pip install since-cutoff
cd examples/ai-stack
mkdir -p scans
since-cutoff scan --model gpt-5 --json > scans/gpt-5.json
since-cutoff scan --model claude-opus-5-5 --json > scans/claude-opus-5-5.json
python stack_report.py scans      # writes stack.md, stack.json and the two chart SVGs

The first scan downloads the sources of each library at both versions; later scans reuse the cache. Diffing transformers takes the longest: up to half an hour for each comparison release on the machine that made this page.

Your own project is the more useful test: uvx since-cutoff scan in its root shows what changed after your model’s cutoff, and the MCP server lets your agent ask before it writes the code.