Skip to content

fix(ai): sync pi e5fe9777 and cedefc53 - #3829

Merged
flora131 merged 3 commits into
mainfrom
sync/pi-e5fe9777-cedefc53
Oct 21, 2026
Merged

flora131 merged 3 commits into
mainfrom
sync/pi-e5fe9777-cedefc53

Conversation

@flora131

@flora131 flora131 commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Syncs Atomic with two upstream pi commits, one Atomic commit each.

Upstream Subject Status Reason / adaptation Atomic commit
e5fe9777 fix(ai,coding-agent): drop models retired upstream Partly ported Ported: generate-models.ts cleanup (Together reasoning-only maps, retired Copilot IDs), stream.test.ts Copilot block on gpt-6-luna, stale comments. Skipped (already in Atomic): Copilot default gpt-6.1-sol (8565667, #3819), Baseten Kimi-K2.6 tests (2e217d5, #3816), Together MiniMax-M2.7 check (48f6fe2, #3815), Copilot opus-4.7 assertions (473ed00), tool-result-images model swap. No changelog: nothing user-facing. d89ea63
cedefc53 fix(ai): handle ChatGPT Business workspace usage limit errors Ported subscription_sharing_workplace_individual_usage_limit_exceeded is non-retryable; the error message tells the user to ask their workspace admin to raise the limit. Changelog entry goes under existing Unreleased ### Fixed. Added a message test (upstream had none). fd1b16c

Verification

  • Red/green: with retry.ts and openai-responses.ts reverted, retry.test.ts and the new message test fail (2 failed, 100 passed); with the fix 102/102 pass.
  • packages/ai full vitest: 1997 passed, 863 credential-gated skipped.
  • npm run check: passed.
  • Generator dry run (--strict --json-only) completes; retired model IDs absent.
  • Not run: live Copilot/Codex tests (need credentials).
  • Known gap: request-level HTTP 429 retry in provider-retry.ts is unchanged, as upstream.

Assistant-workflow: issues-to-merged-prs (run bc9989bb-3139-46c4-89d5-cd60cb951cfe)
Assistant-verification: vitest red-green passed: retry and message tests fail before, pass after
Assistant-verification: npm run check passed
Assistant-verification: GitHub Actions CI passed: test (all platforms) on 49c5765
Assistant-verification: Greptile review passed: confidence 5/5, no new issues on 49c5765
Assistant-duration: 36m converged, estimated 2h
Co-authored-by: Norin Lavaee nlavaee@umich.edu

User-preference: loop each PR until CI is green and Greptile has no feedback, then merge

RetriggerView in GreptileConfidence Score: 5/5

The changes since the previous review only update a test name and remove its redundant comment; no outstanding findings block merging.

Summary

Syncs upstream model cleanup and ChatGPT Business usage-limit support.

  • ChatGPT Business limit errors now point users to an admin and stop retries.
  • Together models use the shared reasoning rules instead of one-off exceptions.
  • Copilot metadata drops retired model IDs and tests use current model routes.

No new issues found in the changes since the previous review.

Reviews (2) · Last reviewed commit: "test(ai): name upstream issue in Copilot..." · Reviewed by Greptile

…5fe9777)

models.dev removed the retired Copilot models (claude-opus-4.6/4.7,
gpt-5.4, gpt-5.5) and the Together reasoning-only models
(DeepSeek-R1, MiniMax-M2.7). The model generator no longer carries
special cases for them: the Copilot extended-context list and the
claude-opus-4.7 thinking-level override lose the retired IDs, and the
Together reasoning-only compat and fixed thinking-level map are gone.
Generated catalogs stay uncommitted.

Most of upstream's change already landed in Atomic and is not repeated:
- Copilot default gpt-6.1-sol and its changelog entry: 8565667 (#3819),
  in model-resolver-defaults.ts where Atomic keeps the defaults.
- Baseten Kimi-K2.6 test and image-tool-result block removal: 2e217d5
  (#3816).
- Together MiniMax-M2.7 check removal: 48f6fe2 (#3815).
- Copilot opus-4.7 assertion removal, and the gpt-6-luna swaps in
  openai-responses-tool-result-images: 473ed00 and 8565667.

Ported here: the generator cleanup; the Copilot stream e2e block now
targets gpt-6-luna via OpenAI Responses and reuses it for the thinking
tests; the tool-call-id normalization comment names gpt-6.1-sol, the
model Atomic's test uses. Atomic's openai-responses-compat test already
uses gpt-6-luna (also off: "none"), so only upstream's #2567 comment is
added, naming gpt-6-luna.

Upstream: earendil-works/pi@e5fe977

Assistant-model: Claude Opus 5.5
Assistant-workflow: issues-to-merged-prs (run bc9989bb-3139-46c4-89d5-cd60cb951cfe)
Assistant-verification: generate-models passed: node scripts/generate-models.ts --strict --json-only to /tmp completes; github-copilot output has no claude-opus-4.6/4.7, gpt-5.4 or gpt-5.5 and together no MiniMax-M2.7 or DeepSeek-R1
Assistant-verification: vitest focused passed: packages/ai stream, openai-responses-compat, tool-call-id-normalization, github-copilot-anthropic, together-models, baseten-models, openai-responses-tool-result-images, image-tool-result (4 files ran, 69 tests; 4 credential-gated files skipped)
Assistant-verification: typecheck passed: packages/ai npm run typecheck (448 files)
Co-authored-by: Norin Lavaee <nlavaee@umich.edu>
…i cedefc53)

On a ChatGPT Business plan the workspace admin sets a per-user usage
limit, and the Codex backend reports it as
subscription_sharing_workplace_individual_usage_limit_exceeded. The code
was treated as a transient error, and the message gave no way forward.
It is now non-retryable in isRetryableAssistantError, and the OpenAI
Responses error message tells the user to ask their workspace admin to
raise the limit at admin.openai.com.

Adaptation: the changelog entry goes under Atomic's existing Unreleased
"Fixed" subsection (upstream used "Added"), and its wording says the
error is no longer classified as retryable. Request-level HTTP 429
retries in provider-retry.ts are unchanged, as upstream.

Tests: upstream's retry.test.ts case is ported. Upstream had no test for
the message, so test/openai-responses-compat.test.ts gains a mocked-429
case for both ChatGPT usage-limit codes; the existing
subscription_sharing_usage_limit_exceeded hint had no coverage either.

Upstream: earendil-works/pi@cedefc5

Assistant-model: Claude Opus 5.5
Assistant-workflow: issues-to-merged-prs (run bc9989bb-3139-46c4-89d5-cd60cb951cfe)
Assistant-verification: vitest red-green passed: with src/utils/retry.ts and src/api/openai-responses.ts stashed, retry.test.ts (expected true to be false) and the workspace-limit message case fail (2 failed, 100 passed); with the fix 102/102 pass
Assistant-verification: vitest packages/ai full suite passed: 192 files passed, 27 credential-gated skipped, 1997 tests passed, 863 skipped
Assistant-verification: npm run check passed: biome (8 infos in untouched files, no errors), bun typecheck for root and coding-agent, shrinkwrap check
Assistant-duration: 7m converged, estimated 45m
Co-authored-by: Norin Lavaee <nlavaee@umich.edu>
Comment thread packages/ai/test/openai-responses-compat.test.ts Outdated
Moves the earendil-works/pi#2567 reference from a comment into the
test name so it appears in test results, as AGENTS.md requires.

Assistant-model: Claude Opus 5.5
Assistant-workflow: issues-to-merged-prs (run bc9989bb-3139-46c4-89d5-cd60cb951cfe)
Assistant-verification: vitest focused passed: packages/ai test/openai-responses-compat.test.ts (60 tests)
Assistant-verification: npm run check passed: biome, bun typecheck passes, shrinkwrap check
Co-authored-by: Norin Lavaee <nlavaee@umich.edu>
@flora131
flora131 merged commit 9c16585 into main Oct 21, 2026
17 checks passed
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