Skip to content

Commit 7696915

Browse files
authored
fix(strix): install required HTTPX2 runtime (#1851)
* fix(strix): install required HTTPX2 runtime Signed-off-by: Seongho Bae <me@seonghobae.me> * test(strix): bind the exact OpenAI lock Signed-off-by: Seongho Bae <me@seonghobae.me> --------- Signed-off-by: Seongho Bae <me@seonghobae.me>
1 parent f893b47 commit 7696915

4 files changed

Lines changed: 57 additions & 15 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
- Align current-main workflow contract tests with native auto-merge completion,
1515
validated dispatch concurrency keys, rotating queue pagination, globbed watch
1616
paths, admission jobs, and the reviewed OpenCode dispatch blob.
17+
- Restore the central Strix runtime after OpenAI Python 2.54.0 began importing
18+
HTTPX2 by selecting the SDK's `httpx2` extra in the hash-compiled dependency
19+
input. The required workflow now installs a verified HTTPX2 wheel before the
20+
scanner starts instead of failing before analysis with a missing module.
1721
- Move the exact-artifact SBOM attestation quality contract into the existing
1822
agent review runtime selector and job, preserving Python 3.10 compilation,
1923
Python 3.14 test evidence, exact-head checkout, hash locks, and read-only

requirements-strix-ci-hashes.txt

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ anyio==4.14.0 \
147147
# google-genai
148148
# gql
149149
# httpx
150+
# httpx2
150151
# mcp
151152
# openai
152153
# sse-starlette
@@ -922,6 +923,7 @@ h11==0.16.0 \
922923
--hash=sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86
923924
# via
924925
# httpcore
926+
# httpcore2
925927
# uvicorn
926928
hf-xet==1.5.1 \
927929
--hash=sha256:0c97106032ef70467b4f6bc2d0ccc266d7613ee076afc56516c502f87ce1c4a6 \
@@ -954,6 +956,10 @@ httpcore==1.0.9 \
954956
--hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \
955957
--hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8
956958
# via httpx
959+
httpcore2==2.12.0 \
960+
--hash=sha256:7e04258ce01013d7d615e5b910a3b27fac937d7a95038227e79652b4ba3b4ceb \
961+
--hash=sha256:9293522bba0aa7c4c8e9e3f040c16575bd8868e155a77fa30c7a9085a5eae648
962+
# via httpx2
957963
httpx==0.28.1 \
958964
--hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \
959965
--hash=sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad
@@ -967,6 +973,10 @@ httpx-sse==0.4.3 \
967973
--hash=sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc \
968974
--hash=sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d
969975
# via mcp
976+
httpx2==2.12.0 \
977+
--hash=sha256:7631fe9887a8a2275f4a2540e053aa670fcc50742864a9ae7c66e609fdcf12cf \
978+
--hash=sha256:cc8b6eecb8661c146b8f89a60e97456ee086e91a784ed31ac450c3a9e613dd36
979+
# via openai
970980
huggingface-hub==1.20.0 \
971981
--hash=sha256:56df2af3a2a1162469e2e7ab09777aaa359ee080b5395d60e9afac78bc5950ed \
972982
--hash=sha256:8dae0cdaef71fef5f96dc4f0ba47d050c6cef42739f097b858157c092a7a3cab
@@ -977,6 +987,7 @@ idna==3.18 \
977987
# via
978988
# anyio
979989
# httpx
990+
# httpx2
980991
# requests
981992
# yarl
982993
importlib-metadata==8.9.0 \
@@ -1381,16 +1392,17 @@ multidict==6.7.1 \
13811392
# via
13821393
# aiohttp
13831394
# yarl
1384-
openai==3.6.0 \
1385-
--hash=sha256:18fe3f6e96390ef41ee27b152fc9effefca321c33673bd9b956a572493d3ab9b \
1386-
--hash=sha256:508e2158bf971687f953b62e44b02f207792c815aac306816386d7ba34d37f5f
1395+
openai==2.54.0 \
1396+
--hash=sha256:89089789197ccdb87f173a03145ed1598d00795220c93e96cf712b1cbf5e5f2b \
1397+
--hash=sha256:e3e6f8bc1ba30ddf381ace1a14340eed381cb984a1a59bd0f34b5be3b5d49cfa
13871398
# via
1399+
# -r requirements-strix-ci.txt
13881400
# litellm
13891401
# openai-agents
13901402
# strix-agent
1391-
openai-agents==0.22.0 \
1392-
--hash=sha256:6c3d7b9e34d3ca4bf763d4557d01ec844685290f0d80cb72e10a304029c0d7ee \
1393-
--hash=sha256:985a74a8024123980c2d4dc329d19b2332a0f86919fa7b3f6b9c2abaae022680
1403+
openai-agents==0.19.4 \
1404+
--hash=sha256:12e0372fae9698fe6f78e05aaeb4ccdb229602f7ef99b8195a7d68dc82869f51 \
1405+
--hash=sha256:fe21778ee1e8216c9cdb775fa86d11b08be68c0184e14023993088d3f812c0be
13941406
# via strix-agent
13951407
packaging==26.2 \
13961408
--hash=sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e \
@@ -1620,15 +1632,17 @@ proto-plus==1.28.1 \
16201632
# google-api-core
16211633
# google-cloud-aiplatform
16221634
# google-cloud-resource-manager
1623-
protobuf==7.36.0 \
1624-
--hash=sha256:1781cc1de61249b750848029bca452c0a8b7e990080316b9bbc2518b2117b488 \
1625-
--hash=sha256:3297e60abdff301e5f74393d87f6cc59dacab5f024a89548a6e8de1d26576b16 \
1626-
--hash=sha256:53374d53fc29a67f7dbbf0ade47d7526a0f0137bf0f9c90e48d8a60790ef748c \
1627-
--hash=sha256:70f5ec8eb0da81a44360c0dc0beac99a0d78071d21956a7076bae8bd2051841b \
1628-
--hash=sha256:7326fd717bdc419162a735938d89d4032332bcc3408804012b24ff3a37086071 \
1629-
--hash=sha256:9103532dffd80c6fab7e50c65a31007680a06eb57537d437bb1b35812c138a37 \
1630-
--hash=sha256:bf94a5917c71058262de683669bc0a797a7669d3de71f0b36d058e3194f47b44 \
1631-
--hash=sha256:e8e09cb0d794c6687926fa558a8a6e72aa10edb997d5ca61da0765f12a3e00ea
1635+
protobuf==6.33.6 \
1636+
--hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \
1637+
--hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \
1638+
--hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \
1639+
--hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \
1640+
--hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \
1641+
--hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \
1642+
--hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \
1643+
--hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \
1644+
--hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \
1645+
--hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf
16321646
# via
16331647
# -r requirements-strix-ci.txt
16341648
# google-api-core
@@ -2301,6 +2315,12 @@ tqdm==4.68.3 \
23012315
# via
23022316
# huggingface-hub
23032317
# openai
2318+
truststore==0.10.4 \
2319+
--hash=sha256:9d91bd436463ad5e4ee4aba766628dd6cd7010cf3e2461756b3303710eebc301 \
2320+
--hash=sha256:adaeaecf1cbb5f4de3b1959b42d41f6fab57b2b1666adb59e89cb0b53361d981
2321+
# via
2322+
# httpcore2
2323+
# httpx2
23042324
typer==0.25.1 \
23052325
--hash=sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89 \
23062326
--hash=sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc

requirements-strix-ci.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
strix-agent==1.5.3
2+
openai[httpx2]==2.54.0
23
aiohttp==3.14.3
34
google-cloud-aiplatform==1.133.0
45
protobuf<8.0.0
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from pathlib import Path
2+
3+
4+
REPOSITORY_ROOT = Path(__file__).resolve().parents[1]
5+
6+
7+
def test_strix_installs_openai_httpx2_runtime() -> None:
8+
requirements = (REPOSITORY_ROOT / "requirements-strix-ci.txt").read_text(
9+
encoding="utf-8"
10+
)
11+
requirements_lock = (
12+
REPOSITORY_ROOT / "requirements-strix-ci-hashes.txt"
13+
).read_text(encoding="utf-8")
14+
15+
assert "openai[httpx2]==2.54.0" in requirements.splitlines()
16+
assert "openai==2.54.0 \\" in requirements_lock.splitlines()
17+
assert "httpx2==2.12.0 \\" in requirements_lock.splitlines()

0 commit comments

Comments
 (0)