From 1b183b33bfcdb3c582f562385c992078f6d7a9ec Mon Sep 17 00:00:00 2001 From: hallerite Date: Wed, 27 May 2026 16:30:41 +0000 Subject: [PATCH] fix(deps): lower openai-harmony floor to >=0.0.4 for SGLang compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every SGLang release through the current 0.5.12.post1 hard-pins `openai-harmony==0.0.4`, so renderers' previous `>=0.0.8` floor made it impossible to install `renderers` and `sglang` into the same environment. That broke the SGLang examples (their inline deps were unsatisfiable) and any downstream driving gpt-oss through SGLang. The `>=0.0.8` floor was introduced in the initial commit with no stated rationale and is over-conservative. Verified that the older harmony is safe: - GptOssRenderer renders byte-identically on harmony 0.0.4 — token-for-token match vs 0.0.8 on a tool-using gpt-oss conversation (149 ids, identical). - `tests/test_gpt_oss_harmony_parity.py` passes 7/7 under 0.0.4. - `uv pip install sglang==0.5.10.post1` now resolves and installs cleanly (177 packages; harmony 0.0.4, flash-attn-4, flashinfer). harmony's published versions are 0.0.1-0.0.4, 0.0.6, 0.0.8, so `>=0.0.4` still allows the newest. Co-Authored-By: Claude Opus 4.7 (1M context) --- pyproject.toml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8016457..389870f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,14 @@ dependencies = [ # Used by GptOssRenderer to render and parse harmony tokens. Vendoring # OpenAI's reference implementation keeps us byte-identical with vLLM # (which also uses it) and saves us mirroring a 330-line Jinja template. - "openai-harmony>=0.0.8", + # + # Floor is ``>=0.0.4`` (not the latest 0.0.8) on purpose: every SGLang + # release through 0.5.12.post1 hard-pins ``openai-harmony==0.0.4``, so a + # higher floor makes ``renderers`` uninstallable alongside SGLang. The + # GptOssRenderer renders byte-identically on 0.0.4 (verified token-for-token + # against 0.0.8) and ``tests/test_gpt_oss_harmony_parity.py`` passes on it, + # so the older harmony is safe. + "openai-harmony>=0.0.4", # Crusoe's Rust BPE tokenizer; ~10x faster encode vs HF's tokenizers. # ``load_tokenizer`` patches it in by default for every supported model # except a small denylist (DeepSeek-V3 family). The patch is bracketed