Skip to content

Move autoblog to the current frontier models on both providers - #229

Merged
ralyodio merged 1 commit into
masterfrom
worktree-autoblog-latest-models
Sep 3, 2026
Merged

ralyodio merged 1 commit into
masterfrom
worktree-autoblog-latest-models

Conversation

@ralyodio

@ralyodio ralyodio commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

What

Autoblog article and guest-post text now run on the current top-tier model of each provider:

before after override
Anthropic claude-opus-4-8 claude-opus-5 BACKEND_AI_ANTHROPIC_MODEL (new)
OpenAI gpt-5.5 gpt-5.6-sol BACKEND_AI_OPENAI_MODEL

Both are env-overridable so the next release or price change is a Railway variable, not a deploy.

Why the thinking change

generateStructuredOutput sent thinking: { type: "disabled" } to every Anthropic model. On Opus 5 that occasionally makes the model write its reasoning into the visible answer, and Fable 5.1 rejects it with a 400. Thinking is now adaptive on 4.6+ models and stays disabled on Haiku 4.5 (which predates adaptive and only knows budget_tokens). The article max_tokens goes 48k -> 64k because reasoning tokens come out of the same ceiling; the call already streams so the larger cap has no timeout cost.

Spend ledger

rateFor() matches on the longest known prefix, and every 5.x id starts with gpt-5, so gpt-5.5 and gpt-5.6-* were being billed at the 2025 gpt-5 rate. Added rows for gpt-5.5 ($5/$30) and the three gpt-5.6 tiers (Sol at the $4/$20 promotional rate published through 2026-11-21).

Verified

  • tsc --noEmit clean, full vitest suite green locally (152 files, 1997 tests).
  • Could not make a live call on either provider: the Railway ANTHROPIC_API_KEY is capped (regain access on 2026-10-01) and the Railway OPENAI_API_KEY reports no credits remaining. Autoblog is not publishing at all right now regardless of this PR; both accounts need topping up.

Not touched

Haiku 4.5 callsites (keyword research, blog detection, pitches), the ads creative generator, apply-fix, and the audit engines keep their pins. Haiku 4.5 is still the current Haiku.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AFoGhPD5bGsQ5StFqrF6ck

Article and guest-post text now run on claude-opus-5 (was claude-opus-4-8)
and gpt-5.6-sol (was gpt-5.5). Both are env-overridable —
BACKEND_AI_ANTHROPIC_MODEL is new, BACKEND_AI_OPENAI_MODEL already existed —
so the next release or price change is a variable, not a deploy.

generateStructuredOutput sent `thinking: disabled` to every Anthropic model.
On Opus 5 that makes the model occasionally write reasoning into the visible
answer, and Fable 5.1 rejects it outright. Thinking is now adaptive on 4.6+
models and stays disabled on Haiku 4.5, which predates adaptive. The article
max_tokens rises 48k -> 64k because reasoning tokens share that ceiling.

The spend ledger learns gpt-5.5 and the three gpt-5.6 tiers; every 5.x id
starts with "gpt-5", so without exact rows the prefix match billed them at
the 2025 gpt-5 rate.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AFoGhPD5bGsQ5StFqrF6ck
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

ThreatCrush Security Scan

39 finding(s)

HIGH/CRITICAL: 2 | MEDIUM: 28 | LOW: 9

Severity Rule Location
HIGH tls-verification-disabled lib/onion.ts:47
HIGH secret-generic-credential lib/sp/platforms/facebook.ts:32
MEDIUM js-unescaped-html-sink app/(app)/dashboard/admin/email-broadcast/EmailBroadcastForm.tsx:125
MEDIUM js-unescaped-html-sink app/(app)/dashboard/projects/[id]/autoblog/articles/[articleId]/page.tsx:214
MEDIUM js-unescaped-html-sink app/(marketing)/blog/[slug]/page.tsx:67
MEDIUM js-unescaped-html-sink app/(marketing)/blog/[slug]/page.tsx:97
MEDIUM js-unescaped-html-sink app/(marketing)/blog/[slug]/page.tsx:104
MEDIUM js-unescaped-html-sink app/(marketing)/blog/[slug]/page.tsx:110
MEDIUM js-unescaped-html-sink app/(marketing)/recent/page.tsx:186
MEDIUM js-unescaped-html-sink app/(marketing)/recent/page.tsx:190
MEDIUM js-unescaped-html-sink app/c/[project]/[slug]/page.tsx:77
MEDIUM js-unescaped-html-sink app/c/[project]/page.tsx:57
MEDIUM js-unescaped-html-sink app/careers.js/route.ts:228
MEDIUM js-unescaped-html-sink app/careers.js/route.ts:285
MEDIUM js-unescaped-html-sink app/layout.tsx:129
MEDIUM js-open-redirect app/login/form.tsx:39
MEDIUM js-unescaped-html-sink app/r/[token]/page.tsx:176
MEDIUM js-open-redirect app/signup/form.tsx:43
MEDIUM js-open-redirect components/billing/buy-credits-modal.tsx:98
MEDIUM js-unescaped-html-sink components/json-ld.tsx:8
MEDIUM js-unescaped-html-sink components/report/markdown-view.tsx:15
MEDIUM js-unescaped-html-sink lib/careers/page-templates.ts:198
MEDIUM redos-nested-quantifier lib/emailMarkdown.ts:41
MEDIUM redos-nested-quantifier lib/emailMarkdown.ts:324
MEDIUM redos-nested-quantifier lib/lx/articleGen.ts:99
MEDIUM redos-nested-quantifier lib/tracker/agent-gate.ts:61
MEDIUM sh-remote-script-execution prober/deploy/provision.sh:30
MEDIUM sql-template-interpolation scripts/detect-slot-themes.ts:31
MEDIUM sql-template-interpolation scripts/purge-constructed-keywords.ts:163
MEDIUM sql-template-interpolation scripts/purge-offniche-keywords.ts:124
LOW secret-generic-credential app/(marketing)/docs/autoblog-webhook/page.tsx:145
LOW secret-generic-credential lib/sp/platforms/linkedin.ts:25
LOW js-dynamic-code-execution tests/careers-page-templates.test.ts:21
LOW js-dynamic-code-execution tests/careers-widget-script.test.ts:19
LOW js-dynamic-code-execution tests/careers-widget-script.test.ts:69
LOW js-dynamic-code-execution tests/contract/ad-visitor-id.test.ts:51
LOW js-dynamic-code-execution tests/contract/ad-visitor-id.test.ts:52
LOW secret-generic-credential tests/contract/posthog-integration.test.ts:13
LOW secret-generic-credential tests/lead-campaign.test.ts:16

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio marked this pull request as ready for review September 3, 2026 16:36
@ralyodio
ralyodio merged commit bc0d804 into master Sep 3, 2026
10 checks passed
@ralyodio
ralyodio deleted the worktree-autoblog-latest-models branch September 3, 2026 16:36
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