Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
cbc3c43
Studio: add Codex SDK as a chat provider with parallel-calls fan-out
danielhanchen May 22, 2026
ea7ae85
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 22, 2026
4188f91
wip: anthropic citation helper
danielhanchen May 22, 2026
0a4309f
Studio: add codex_router to test_desktop_auth router stub
danielhanchen May 22, 2026
b8cd677
Studio: harden Codex provider against upstream CLI/SDK shape
danielhanchen May 24, 2026
861da31
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 24, 2026
b6577a6
Studio: name the actual PyPI package in the Codex install hint
danielhanchen May 24, 2026
0d904d6
Merge branch 'main' into feat/codex-provider
danielhanchen May 24, 2026
d6c47f6
Studio: wire Codex provider through the UI end-to-end
danielhanchen May 24, 2026
e2ac490
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 24, 2026
028b7b7
Studio: finish Codex UI flow (test, sign-in, parallel tabs)
danielhanchen May 24, 2026
1f7cad4
Merge branch 'feat/codex-provider' of https://github.com/unslothai/un…
danielhanchen May 24, 2026
fd8f25f
Studio: scrub Codex subprocess env, guard partial-stream replay, abor…
danielhanchen May 24, 2026
4b4c855
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 24, 2026
4be807b
Studio: round 4 hardening for the Codex provider
danielhanchen May 24, 2026
67b837e
Merge branch 'feat/codex-provider' of https://github.com/unslothai/un…
danielhanchen May 24, 2026
593fc9e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 24, 2026
1a10765
Studio: round 5 hardening for the Codex provider
danielhanchen May 24, 2026
c5289f0
Studio: pin Codex thread approvals + sandbox to safe defaults
danielhanchen May 24, 2026
8c1c63a
Studio: surface Codex final agent message when no deltas stream
danielhanchen May 24, 2026
9b4bd11
Studio: surface Codex parallel-calls in the connections dialog
danielhanchen May 24, 2026
f97a800
Studio: round 5e Codex hardening (4 follow-ups)
danielhanchen May 24, 2026
cb0680e
Studio: per-tab buffer for Codex fan-out so chunks cannot interleave
danielhanchen May 24, 2026
aa258b9
Studio: account for every Codex turn in fan-out usage chunk
danielhanchen May 24, 2026
8ee6001
Studio: round 6 Codex hardening (5 follow-ups)
danielhanchen May 24, 2026
2874abb
Studio: fail closed when Codex SDK cannot enforce safety pins
danielhanchen May 24, 2026
2eaf1bb
Studio: pass codex_bin to AppServerConfig so PATH-only codex installs…
danielhanchen May 25, 2026
c755d00
Studio: cross-platform CI matrix for Codex provider tests
danielhanchen May 25, 2026
b786238
Studio: render Codex parallel-calls synthesis AFTER the per-tab blocks
danielhanchen May 25, 2026
26799d9
Studio: pre-check Codex default models when creating the connection
danielhanchen May 25, 2026
f05517a
Studio: round 7 Codex hardening (cross-wrapper env scrub + device URL…
danielhanchen May 25, 2026
8cef479
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 25, 2026
dee1b68
Studio: round 7b -- tighten device-login log filter + harden timeout …
danielhanchen May 25, 2026
be15c57
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 25, 2026
b17765b
Studio: round 8 -- replay guard on non-visible events + Add-flow Code…
danielhanchen May 25, 2026
5185032
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 25, 2026
f29faef
Merge branch 'main' into feat/codex-provider
danielhanchen May 27, 2026
3bbbd41
Merge branch 'feat/codex-provider' of https://github.com/unslothai/un…
danielhanchen May 27, 2026
e2b7f59
Studio: round 9 -- three P2 fixes from latest Codex bot review
danielhanchen May 27, 2026
dd0aeec
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 27, 2026
ecf8bc7
Merge remote-tracking branch 'origin/main' into feat/codex-provider
danielhanchen May 27, 2026
3d1075f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 27, 2026
f01011e
Studio: real Codex parallel-call tab UI + in-process SDK spoof
danielhanchen May 27, 2026
10d6b69
Merge branch 'feat/codex-provider' of https://github.com/unslothai/un…
danielhanchen May 27, 2026
cd8284d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 27, 2026
6867cfb
Merge remote-tracking branch 'origin/main' into feat/codex-provider
danielhanchen May 27, 2026
6403846
Studio: spoof-aware Codex availability probe + autouse fixture
danielhanchen May 27, 2026
c716af4
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions .github/workflows/studio-codex-cross-platform-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# SPDX-License-Identifier: AGPL-3.0-only
# Copyright 2026-present the Unsloth AI Inc. team. All rights reserved.

# Cross-platform CI for the OpenAI Codex chat-provider work (PR #5724).
#
# The main studio-backend-ci.yml runs the full backend test suite on
# ubuntu-latest across Python 3.10/3.11/3.12/3.13, which already
# exercises tests/test_codex_provider.py. This file adds Codex-only
# matrix runs on macos-14 (Apple Silicon, MLX-relevant for Studio
# users) and windows-latest (Studio ships a Windows desktop build)
# so the codex_bin / sys.modules / importlib gates that Codex relies
# on are validated on all three platforms with a small (~1 min)
# cycle time. Paths filter keeps it from re-running on unrelated
# code changes.

name: Studio Codex Cross-Platform CI

on:
pull_request:
paths:
- 'studio/backend/core/inference/codex_provider.py'
- 'studio/backend/core/inference/codex_availability.py'
- 'studio/backend/routes/codex.py'
- 'studio/backend/tests/test_codex_provider.py'
- '.github/workflows/studio-codex-cross-platform-ci.yml'
push:
branches: [main, pip, feat/codex-provider]
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
codex-tests:
name: Codex tests (${{ matrix.os }}, Py ${{ matrix.python }})
runs-on: ${{ matrix.os }}
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-14, windows-latest]
python: ['3.11', '3.13']
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python }}
cache: 'pip'

- name: Install minimal deps for Codex tests
# Codex provider tests inject a fake SDK via sys.modules + patch
# importlib.util.find_spec, so the real openai-codex package is
# not required. structlog / fastapi / pydantic / httpx come from
# the production import chain that codex_provider.py walks at
# module load.
run: |
python -m pip install --upgrade pip
pip install \
pytest pytest-asyncio httpx \
'pydantic>=2,<3' \
structlog \
fastapi \
python-multipart aiofiles sqlalchemy cryptography \
pyyaml jinja2 requests \
'numpy<3'
shell: bash

- name: Run codex tests
working-directory: studio/backend
run: |
python -m pytest \
tests/test_codex_provider.py \
-q --tb=short
shell: bash
Loading
Loading