Skip to content

Model history

Models & usage is a snapshot of today. This page is the path that got us there: when each AI-bearing service came online, every model swap since, and what was retired along the way.

Every row is derived from source-repo git history — the commit that made the change is cited. Dates are commit dates on the mainline branch.

OpenAIAnthropicGoogleRunwayKlingxAIExa.ai retired
2025-04 2025-07 2025-10 2026-01 2026-04 2026-07 today OpenAI 15 gpt-4o gpt-4.1 gpt-4o-mini gpt-4.1-mini gpt-5-nano gpt-5.2 gpt-4.1-nano Sora 2 gpt-5 gpt-5-mini gpt-5.5 gpt-5.5 (image_generation) gpt-4o-mini-tts (AOP CLI) gpt-5.6-sol (AOP fleet) gpt-5.6-terra (AOP fleet) Anthropic 10 claude-haiku-4-5 claude-sonnet-4 claude-sonnet-4-6 claude-sonnet-4-6 (Cortex) claude-opus-4-8 claude-sonnet-4 (Cortex proto) claude-sonnet-4-6 (AOP agents) claude-opus-4-7 (AOP CLI) claude-3-5-sonnet (SA build) claude-haiku-4-5 (SA columns) Google 6 gemini-2.5-flash-lite-preview-06-17 gemini-2.5-flash-lite gemini-3-pro-image-preview gemini-2.5-flash (prompt extract) gemini-3.1-flash-image-preview Google Veo Runway 1 Runway Kling 1 Kling xAI 1 Grok Exa.ai 1 Exa.ai (search)
Uniform band height — thickness carries no meaning. Every start and end is the commit that introduced or removed the model.

Read it top to bottom and the shape is obvious: OpenAI has been there since the first commit and never stops accumulating; Anthropic arrives all at once in March 2026 and stays inside its own lane; the video vendors land together in a single commit and never move again.

ServiceProviderModels
ai-api — chat, reports, utilityOpenAI (+1 Google)gpt-5.5, gpt-5.2, gpt-5, gpt-5-mini, gpt-5-nano, gpt-4.1/-mini/-nano, gemini-2.5-flash-lite
pulsead-agents — autonomous opsAnthropic (AWS Bedrock)claude-haiku-4-5, claude-sonnet-4-6, claude-opus-4-8
Snowflake Cortex — semantic SQLAnthropicclaude-sonnet-4-6
Creative — imagesGoogle + OpenAIgemini-3-pro-image-preview, gemini-3.1-flash-image-preview, gpt-5.5 + image_generation
Creative — video5 vendorsSora 2, Runway, Kling, Google Veo, Grok

Each row is the first commit that put an AI-bearing service in the tree.

DateServiceCame up on
2025-02-21ai-api — first commitgpt-4o
2025-06-12Search-term clusteringGemini (preview build)
2025-06-27PSM chat engine (psm_chatbot.py)gpt-4.1
2025-08-11Chart toolgpt-5-nano (from 2025-08-18)
2026-01-27banana-bunch — bulk image generationgemini-3-pro-image-preview
2026-03-17pulsead-agents — first autonomous agent (monitoring)claude-haiku-4-5
2026-03-24Weekly Report pipeline (4 agents)claude-sonnet-4 for the writer
2026-03-25Ads scheduler + executorclaude-haiku-4-5
2026-03-25ads-variation — banner reflowgemini-3.1-flash-image-preview
2026-04-01data_semanticview — semantic SQL layerCortex
2026-04-03video-generator — all 5 providers at onceSora, Runway, Kling, Veo, Grok
2026-04-03Optimize Cycle groupBedrock Claude
2026-04-09AMC group — router / advisor / writerHaiku + Sonnet
2026-04-23Pulson agent wrapperdelegates to PSM
2026-04-28Action chat — the multi-agent chat that is live todaygpt-5 + gpt-5-mini
2026-05-09Memory classifiergpt-5-nano
2026-05-14Keyword harvester + waste-keyword pauserclaude-sonnet-4-6
2026-05-15Dashboard Report Agentgpt-5.2
2026-05-26Brand augment extractorgpt-5-mini
2026-07-09Weekly-report summary APIclaude-opus-4-8
2026-08-06Support reminder cronno LLM — pure Python

The last row is not a typo. support_reminder is a scheduled job that reads Postgres and posts to Slack; it holds no model. Not everything added to an agents repo is an agent.

DateChangeCommit
2025-02-21Launches on gpt-4o23daa671 first commit
2025-05-22gpt-4.1 enters the treefce70698
2025-06-25gpt-4o-mini and gpt-4.1-mini added for cheap paths73629285
2025-08-18Chart generation moved to gpt-5-nanob4852c19 “chart model을 5 nano로 변경”
2025-11-21Search-term clustering: gemini-2.5-flash-lite-preview-06-17gemini-2.5-flash-lite6730a4db
2025-12-28PSM researcher: gpt-4.1gpt-5.22f9f2e26 “model version을 4.1에서 5.2로 업그레이드”
2025-12-29gpt-4.1-nano added for the cheapest summariesb1d82131
2026-04-10Last gpt-4o-mini use removed2cefbde9
2026-04-28Action chat ships on gpt-5 (base) + gpt-5-mini (sub-agents)91f6388a
2026-05-07Last gpt-4o use removed from code3ea61511
2026-05-27Sub-agents upgraded gpt-5-minigpt-5.5eef0662d

The 2026-05-27 swap is the interesting one. Action chat launched a month earlier with gpt-5-mini on all four sub-agents. Within four weeks, query, insight, action, and diagnose were all moved up to gpt-5.5 — while task stayed on gpt-5-mini and the router stayed on gpt-4.1-mini. The reasoning seats got upgraded; the classification seats did not.

Two shared constants drive nearly every autonomous agent, so the whole fleet moves when one line in shared/config.py changes.

DateChangeCommit
2026-03-17MODEL_ID = claude-haiku-4-5 — the fleet default, set with the first agentb3c284e
2026-03-24WRITER_MODEL_ID = claude-sonnet-4 — report writer promoted26eafe4 “upgrade report writer to Sonnet”
2026-04-07WRITER_MODEL_IDclaude-sonnet-4-6d126140
2026-04-07Rolled back to claude-sonnet-4 — Sonnet 4.6 not subscribed on Marketplace0b2b4b4
2026-04-07Re-applied — access resolved0e72e14
2026-07-09SUMMARY_MODEL_ID = claude-opus-4-8, for weekly-report summaries only805c78b

The three 2026-04-07 commits are the same day. The Sonnet 4.6 upgrade shipped, broke on a Bedrock Marketplace subscription that wasn’t in place, got reverted, and went back out once the subscription cleared — all within one day. It is the only model rollback in any repo’s history.

claude-opus-4-8 is the only Opus in the stack and drives exactly one job. Everything else that writes prose runs Sonnet 4.6.

DateChangeCommit
2026-04-01data_semanticview repo createdinitial commit
2026-04-09Agent v3.1 deployed on claude-sonnet-4-6, up from claude-sonnet-4e99b71a

Same week as the pulsead-agents move to Sonnet 4.6, and unchanged since — the longest-stable model choice in the stack.

DateChangeCommit
2026-01-27banana-bunch launches on gemini-3-pro-image-preview (app ID nano-banana-pro)1b7550a
2026-03-25ads-variation launches on gemini-3.1-flash-image-preview6ea3e6c
2026-04-03video-generator ships with all five providers in the initial commitinitial commit
2026-06-17banana-bunch adds OpenAI gpt-5.5 + image_generation as a selectable modelc87b2bd
2026-06-17ads-variation adds the same option3954ec0

Both image apps gained the OpenAI option on the same day, in two separate repos. Gemini stayed the default in both; OpenAI is opt-in per run. This is the only place in PulseAd where two vendors serve the same job and the choice is left to the operator — everywhere else the vendor is fixed by the service.

Note the two apps do not share a Gemini model: banana-bunch runs Pro, ads-variation runs Flash. Neither calls OpenAI’s image endpoint directly; both go through the Responses API with the image_generation tool.

The aop CLI and its server run their own models, chosen independently of ai-api. This is the second-largest model surface in the company and shares nothing with the chat stack.

DateChangeCommit
2026-05-04aop-hermes imported — the Hermes engine, carrying claude-opus-4-7 only as a context-window entry in agent/model_metadata.py. No agent ran it yet19613d9
2026-06-08Operator profiles created and pinnedclaude-opus-4-7 on four of them, gpt-4o-mini-tts for speech, claude-sonnet-4-6 and claude-haiku-4-5 as lighter optionsdd77861
2026-06-23aop-hermes-server created — the fleet runtimeinitial commit
2026-06-29First fleet profile config lands79631d0
2026-07-30Fleet default → openai/gpt-5.6-sol, via OpenRouterfaa4acb
2026-07-30Fleet default → openai/gpt-5.6-terrasame day0e6b6f4

gpt-5.6-sol was the fleet default for part of a single day. It shipped and was superseded by terra in the same 24 hours — the second same-day model reversal on record, after the Sonnet 4.6 rollback. Unlike that one, this wasn’t a failure: both commits read as a deliberate upgrade sequence.

Note the month between those two rows. Importing an engine that supports a model is not the same as running it — the AOP agents didn’t touch Opus until the profiles existed. Reading the repo-wide history alone would date this a month early.

claude-opus-4-7 is worth noting because it appears nowhere in ai-api. The operator CLI reaches for a heavier reasoning model than anything the customer-facing chat runs.

Snowflake — the semantic layer’s own models

Section titled “Snowflake — the semantic layer’s own models”

Distinct from Cortex, which is what serves text-to-SQL. These are the models that build the semantic layer.

DateChangeCommit
2026-03-31snowflake-multi-agent prototype on claude-sonnet-4-20250514bc0f21d
2026-04-13snowflake-semantic-agent scaffold importedinitial commit
2026-05-08Tutorial-based SA extractor on claude-3-5-sonnet-20241022-v2 (Bedrock)59bad012
2026-05-19Column-description generation on claude-haiku-4-54de915c3

snowflake-multi-agent has one commit and no activity since 2026-03-31. It reads as a prototype that was superseded by snowflake-semantic-agent two weeks later, but nothing in the repo says so — treat it as unresolved rather than retired.

The claude-3-5-sonnet-20241022-v2 pin is the oldest model still referenced anywhere in PulseAd. Everything else on this page has moved to a 4-series or 5-series model.

ModelIn useRetired by
gpt-4o2025-02-21 → 2026-05-07Superseded by the GPT-5 family; still declared, unread, in env files
gpt-4o-mini2025-06-25 → 2026-04-10Replaced by gpt-4.1-mini
gemini-2.5-flash-lite-preview-06-17→ 2025-11-21Preview build swapped for the GA model
claude-sonnet-42026-03-24 → 2026-04-07Superseded by Sonnet 4.6
Weekly Report 4-agent pipeline (Haiku + Sonnet)2026-03-24 → 2026-06-25Whole pipeline deleted; replaced 2026-07-09 by one Opus 4.8 endpoint

These run models but are not the product — no customer request ever reaches them. They’re here because “which models does PulseAd use” gets answered wrong without them, and because the dev toolchain shows the same adoption reflex a quarter early. They get no bands on the chart.

DateWhereModelWhat it does
2026-04-13pulsy-frontend CIgpt-5.4Codex-based review autofix on pull requests
2026-04-13pulsy-frontend agents/gpt-5.4, claude-opus-4-7Preferred models for the repo’s development agent roles
2026-03-19pulsy-qaclaude-opus-4-20250514The L3 judge that grades Pulson’s answers
2026-03-19pulsy-qaclaude-haiku-4-5-20251001SQL verification, docs lookup, report assembly
2026-03-19pulsy-qaclaude-sonnet-4-20250514Alternative eval policy

Three things follow. The dev toolchain adopts ahead of the product: gpt-5.4 was running in CI on 2026-04-13, six weeks before gpt-5.5 reached the chat sub-agents on 2026-05-27. claude-opus-4-7 shows up in dev tooling and in AOP, never in ai-api — the customer-facing chat has never run an Opus-class model. And PulseAd has run Opus since 2026-03-19 — but to grade Pulson’s answers, not to produce them. The product’s first Opus arrived on 2026-07-09, sixteen weeks later.

pulsy-qa’s pins have not moved since its first commit. claude-opus-4-20250514 and claude-sonnet-4-20250514 are both May-2025 snapshots, so the harness grades a 2026 product with 2025 models.

Recorded so the next audit doesn’t repeat this one.

RepoFinding
prefectNo LLM SDK anywhere in code. Its claude/gpt strings are planning docs describing other services, plus a Google service-account address that happens to read claude-code@…
portal, portal-api, portal-frontendZero model references. The prior-generation product ran no LLMs at all — the AI story starts with ai-api on 2025-02-21, and nothing precedes it

The portal result is the more interesting one. It means PulseAd’s first generation shipped and was retired without a model in it; everything on this page postdates that line.

Vendor is decided by service, not by task. ai-api has been OpenAI since its first commit and has never run a Claude model. pulsead-agents has been Anthropic since its first commit and has never run a GPT. No agent has ever moved between them. That boundary is infrastructure — direct API versus AWS Bedrock — not a per-task judgment. AOP is the exception that confirms it: a third service, a third vendor posture (Anthropic on the CLI, OpenAI via OpenRouter on the fleet), decided independently of both.

Reasoning power is inverted against audience. The heaviest models in the company run where staff are — claude-opus-4-7 on the AOP operator CLI, claude-opus-4-8 on the weekly report — while the customer-facing chat tops out at gpt-5.5 and has never run an Opus-class model. Whether that’s a cost decision or a latency one isn’t recorded anywhere in the code.

Upgrades hit the reasoning seats and skip the cheap ones. The router has been on a -mini model since 2025. Chart generation has been on nano since 2025-08. Meanwhile the same product’s reasoning seats went gpt-4.1gpt-5.2gpt-5.5, and the Bedrock writers went Sonnet 4 → Sonnet 4.6 → Opus 4.8 for the hardest job.

Adoption is fast and occasionally too fast. Sonnet 4.6 went in the day it was tried, broke on an unsubscribed Bedrock Marketplace entry, and was rolled back and re-applied within hours. That is the only rollback on record — the rest of the swaps stuck on the first attempt.

Re-run /sync-docs to refresh this from source.