feat: GPT-6 Sol and GPT-6 Luna - catalog rows, family prompt preset, recommended default - #2024
Merged
Merged
Conversation
Strict regeneration against live sources lands gpt-6-sol and gpt-6-luna on openai, chatgpt-subscription (hand-added: models.dev never carries the Codex backend), azure-openai-responses, opencode, openrouter, venice and vercel-ai-gateway, with -fast Priority variants on the two first-party providers. Published prices (Sol 2/10 with 0.2 cache reads and 2.5 writes, Luna 0.1/0.5 with 0.01 / 0.125) carry the >272k tiers; 128k output; text + image; tool search + additional tools; the documented ladder none/low/medium/ high/xhigh/max (minimal: null; off stays selectable, unlike Astra). The Astra-only final pass becomes a GPT-6 family pass: the tier prompt budget is stamped on every provider row (Astra 600k unchanged, Sol 400k, Luna the full 922k input cap) and the ladder is stamped once, so the eight OpenRouter passthrough rows that 2026.9.22-4 shipped without any effort map now expose xhigh and max. models.ts XHIGH_MODEL_IDS / OPENAI_MAX_MODEL_IDS gain both ids for map-less custom rows. The input-cap invariant test exempts exactly gpt-6-sol @ 400,000 (a deliberate budget that equals the 400k-tier total); a 1,050,000 Sol row still fails it. Carries incidental upstream drift: opencode adds claude-opus-5-5 and grok-4.7, OpenRouter pricing/context refreshes, Vercel gemini metadata. No model id removed.
OpenAI documents one set of prompting practices for GPT-6 Astra, Sol and Luna, and the rendered Astra core names no model, so the matcher widens from gpt-6-astra to gpt-6-(astra|sol|luna) with the same delimiter-boundary shape (prefixed, suffixed, dated and Bedrock-style ids plus the display names). The preset keeps the "gpt-6-astra" name that settings.json already pins; bare gpt-6 / gpt-6-mini / near-miss words stay unmatched. The apply_patch gate already accepted the whole family, so preset and tool capability now agree on every GPT-6 id (#1891 class).
Closed
5 tasks
code-yeongyu
force-pushed
the
feat/gpt-6-family
branch
3 times, most recently
from
September 23, 2026 01:15
d66f2fc to
4913f32
Compare
…nAI default GPT-6 Sol joins RECOMMENDED_DEFAULT_MODELS directly under GPT-6 Astra and ahead of GPT-5.6 Sol, and defaultModelPerProvider.openai / chatgpt-subscription move from gpt-5.6-sol to gpt-6-sol, so an implicit OpenAI default lands on the GPT-6 tier. The high-reasoning warning adds the gpt-6-sol marker (warns at xhigh and max like GPT-5.6 Sol; Astra keeps its max-only rule; Luna is not matched). The ulw-loop ethos tip names the new default. Explicit defaultModel / recommendedModels settings are untouched.
…e on the GPT-6 preset
code-yeongyu
force-pushed
the
feat/gpt-6-family
branch
from
September 23, 2026 01:27
4913f32 to
c0e27cd
Compare
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #2023
Summary
OpenAI's GPT-6 family is Astra, Sol and Luna; 2026.9.22-4 supported Astra only. This PR brings Sol and Luna to the same level on four surfaces, each with a failing-first test:
packages/ai):gpt-6-solandgpt-6-lunarows onopenaiandchatgpt-subscription(hand-added; models.dev never carries the Codex backend), plus regenerated passthrough rows on Azure, OpenCode, OpenRouter, Venice and Vercel, and-fastPriority variants on the two first-party providers. Published prices with the >272k tiers, 128k output, text + image, tool search / additional tools, and the documented laddernone/low/medium/high/xhigh/max(minimal: null; unlike Astra,offstays selectable). Prompt budgets stamped family-wide: Luna 922k (the documented input cap), Sol 400k, Astra 600k unchanged.packages/ai/src/models.ts): map-less custom rows for both ids surfacexhighandmax.packages/coding-agent): every Sol/Luna id shape resolves to the GPT-6 preset (OpenAI ships one prompting guide for the family; the rendered core names no model). The preset keeps itsgpt-6-astraname so existingsettings.jsonpins keep working.gpt-6-sol:mediumjoins the recommendation ladder directly under Astra and becomes the implicit default foropenai/chatgpt-subscription; the high-reasoning warning covers Sol atxhigh/max(Luna excluded).Which rows came from regeneration vs. by hand
Regeneration (
generate-models --strictagainst live models.dev): azure-openai-responses, opencode, openrouter (the eight rows 22-4 already shipped, now with the ladder + Sol budget), venice, vercel-ai-gateway. Hand-added ingenerate-models.ts: theopenaifallback rows and thechatgpt-subscriptionrows. Incidental upstream drift carried by the regeneration: opencode gainsclaude-opus-5-5andgrok-4.7, OpenRouter price/context refreshes on unrelated ids, Vercel gemini metadata. No model id was removed (per-file id delta audited).Changelog
packages/ai/CHANGELOG.md: Added (first-party rows) + Fixed (OpenRouter rows shipped in 22-4 without any effort ladder).packages/coding-agent/CHANGELOG.md: Breaking (recommended/default OpenAI model moves to GPT-6 Sol) + Added (family preset, warning coverage).changes.mdtrackers:packages/ai/changes.md,packages/ai/src/changes.md,packages/coding-agent/src/core/changes.md,prompt-preset/changes.md.node scripts/check-pr-changelog.mjs --base origin/main→ PASS.RED → GREEN evidence
packages/ai/test/gpt-6-family-catalog.test.tstest/suite/prompt-presets-gpt-6-family.test.tsundefinedpreset)recommended-models-extension,model-resolver,high-reasoning-warningtestsopenai-input-cap-catalog.test.tsexempts exactly thegpt-6-sol @ 400,000pairing (a deliberate budget equal to the 400k-tier total); a 1,050,000 Sol row still fails it.Real-CLI QA (senpi-qa channel 3)
bun .agents/skills/senpi-qa/scripts/gpt-6-family-preset-mock-loop.mjs→ 24/24. The real CLI in--printmode against a fake Responses server sentmodel: gpt-6-solwithreasoning.effort: mediumandmodel: gpt-6-lunawithreasoning.effort: none(theofflevel Astra cannot take), and both developer messages carry the GPT-6 sections (## Asynchronous Work,## Instructions From Files), none of the GPT-5.6 ones, and no "Astra" token. Evidence underlocal-ignore/qa-evidence/20260923-gpt-6-family-preset-mock-loop/(gitignored). Sandboxes and the fake server are torn down in-script; zero leftover dirs/processes after the run.Gates
bunx biome check --error-on-warnings .→ 0 errorsbunx tsgo --noEmit→ exit 0 (run from the canonical checkout path)bun run --cwd packages/ai check:model-data→ validtest/suite/anthropic-subscription-naming.test.ts→ 3 passed (no legacy provider literals introduced)Not in this PR
gpt-6-sol/gpt-6-luna(the mock loop proves what the harness sends, not that a provider accepts it).configuration_update(mid-conversation effort change) stays Astra-only, matching the Codex backend's wire constraint.Summary by cubic
Adds GPT-6 Sol and GPT-6 Luna across the model catalog, effort inference, prompt preset, and defaults, so the whole GPT-6 family is supported rather than Astra alone.
gpt-6-sol:mediumbecomes the recommended and implicit default for theopenaiandchatgpt-subscriptionproviders; explicitly configured settings are untouched.Catalog and effort inference
gpt-6-solandgpt-6-lunarows on OpenAI, ChatGPT Subscription, Azure, OpenCode, OpenRouter, Venice, and Vercel, with-fastPriority variants on the two first-party providers.none/low/medium/high/xhigh/maxeffort ladder, and family prompt budgets (Astra 600k unchanged, Sol 400k, Luna 922k).xhighandmax.Prompt preset and defaults
gpt-6-sol/gpt-6-lunaids resolve to the GPT-6 family prompt preset, which keeps itsgpt-6-astraname so existing settings pins keep working.xhigh/max; Luna is not covered.The regeneration also carries incidental upstream drift (opencode gains
claude-opus-5-5andgrok-4.7, plus OpenRouter and Vercel refresh), with no model ids removed.Written for commit c0e27cd. Summary will update on new commits.