Skip to content

fix(integrations): keep auto-managed Hindsight daemons working on Python 3.14 hosts - #2801

Merged
nicoloboschi merged 1 commit into
vectorize-io:mainfrom
r266-tech:fix/python314-uvx-daemon
Jul 21, 2026
Merged

fix(integrations): keep auto-managed Hindsight daemons working on Python 3.14 hosts#2801
nicoloboschi merged 1 commit into
vectorize-io:mainfrom
r266-tech:fix/python314-uvx-daemon

Conversation

@r266-tech

Copy link
Copy Markdown
Contributor

Summary

Fixes #2783 by making auto-managed uvx daemon launches default to Python 3.13 while the current LiteLLM/PyO3 dependency chain cannot build on Python 3.14.

  • applies the compatible interpreter to Claude Code, Codex, Cursor, and Cursor CLI managed uvx launches
  • preserves any non-blank user-provided UV_PYTHON override
  • leaves embedPackagePath development installs on their existing uv run --directory path
  • propagates the same environment through hindsight-embed to its nested hindsight-api uvx fallback

Cursor has no detached prestart path: its sessionStart hook enters _ensure_daemon_running(), and both profile creation and daemon startup already go through the updated _run_embed() path.

Testing

  • Claude Code daemon tests: 5 passed
  • Codex daemon tests: 5 passed
  • Cursor daemon tests: 11 passed
  • Cursor CLI daemon tests: 5 passed
  • nested hindsight-embed environment tests: 2 passed
  • full Codex integration suite: 95 passed
  • full Cursor integration suite: 85 passed, 4 skipped
  • full Cursor CLI integration suite: 92 passed
  • Ruff check/format and git diff --check passed for the changed files

The full Claude Code suite reached 203 passed with one unrelated existing working-directory permission test failing in this macOS cron environment; the focused daemon tests are green.

@nicoloboschi
nicoloboschi merged commit 6c8a92c into vectorize-io:main Jul 21, 2026
84 checks passed
nicoloboschi added a commit that referenced this pull request Jul 24, 2026
litellm ships its own Rust extension (litellm-rust python-bridge ->
litellm.rust_bridge._native, built via maturin/PyO3). Releases before
1.93.0 publish no cp314 wheel, so on Python 3.14 uv falls back to the
sdist and the build fails:

    error: the configured Python interpreter version (3.14) is newer
    than PyO3's maximum supported version (3.13)

1.93.0 adds cp314 wheels and a PyO3 that builds on 3.14. Raising the
floor fixes the failure at its source, so the interpreter no longer has
to be constrained.

That lets us drop the UV_PYTHON=3.13 workaround added in #2801: the
_set_uvx_python_compat() helper and its call sites are removed from the
claude-code, codex, cursor, and cursor-cli daemons, along with the tests
that pinned that behaviour. Dropping the pin costs nothing — litellm
publishes no macOS wheels at all, so macOS builds from the sdist on every
version regardless, while Linux now gets a real cp314 wheel instead of a
source build.

Also strengthen the build-api-python-versions CI matrix. It previously
ran only `uv build`, which just packages the source and passes even when
the dependency set cannot install or import on the target interpreter --
it would not have caught this. It now installs into a fresh venv,
byte-compiles, and runs an import smoke test on each version.

Verified on CPython 3.14.4 with UV_PYTHON unset: litellm 1.93.0 installs,
the Rust bridge builds, and hindsight_api plus the engine import cleanly.

Refs #2783
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.

litellm 1.92.0 fails to build on Python 3.14 (PyO3 0.23.5 max supported version is 3.13)

2 participants