fix(bootstrap): lite venv is CUDA-free — secrets paths stop pulling torch - #2961
Conversation
…orch env-bootstrap-lite installs requirements-lite.txt on every funnel and preflight path, and that file carried sentence-transformers and scikit-learn — torch and the multi-GB nvidia wheel stack (cufft 204MB, nvshmem, nvrtc...) on every secrets-materialization run. Measured 2026-09-05: both secrets-funnel-from-prod and funnel-sync-from-bundle timed out mid-wheel-download on a node at 98% disk; a fresh lite venv cost multi-GB where the funnel path needs 15MB. - requirements-lite.txt: core only (PyYAML, rich, jsonschema, psutil, numpy) — verified: 15MB venv, seconds to install, zero torch - requirements-lite-embeddings.txt: the heavy tier for the actual embedding-decode tools (chit_backend, catalog_lensing_engine, chit_decoder_mm), opt-in via --with-embeddings; header notes the CPU wheel index preference - chit_backend.py: sentence-transformers/sklearn imports made defensive (chit_decoder.py already was) — imports cleanly without the tier, fails only at real use
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🔏 CHIT-aware change — control-body routingThis PR touches a CHIT-aware service (ports 8086/8087/8103/8106/8113/9224 surface). Before a Control-Body ACK:
Advisory routing only — the blocking contract check is CHIT Contract. |
…id-flight Operator catch on #2961: the CUDA-wheel disaster was a symptom; the bug is that chit-manifest-{register,sync,check} invoked env-bootstrap-lite UNCONDITIONALLY mid-run, so a missing venv was discovered by INSTALLING (hundreds of MB) in the middle of a secrets materialization — on a full disk, inside timeouts, with no way to know before you started. - bootstrap_light_env.py --check: precheck ONLY — verifies the venv python exists and every requirement's import resolves THROUGH the venv (subprocess probe, not host importlib); never creates, never installs; exit 3 with the exact remediation command - make env-bootstrap-check (preflight.mk) — the gate target - the three chit-manifest-* entries in codex.mk now call the gate instead of the bootstrap Verified both paths: absent venv -> Error 3 with remediation before any network; real venv -> "precheck OK" and the chit step proceeds.
|
Added per operator review — the real bug was upstream of the wheels: the funnel steps ( Now: (Also on this thread: docker prune on SPARK reclaimed 0B — the space genuinely lives in the ~54G of verified plain copies awaiting operator sign, not in image bloat.) |
….gitignore, count both bootstrap targets in the recursion guard Pair-review fixes for the two red CI jobs (5090, Windows node): - pmoves/.venv-pmoves was committed as a symlink (mode 120000) pointing at a B850 home path. On CI it dangles, so lgtm_marker_check raises FileNotFoundError (suppression-marker-check exit 3) and test_this_repository_is_clean fails. On a Windows checkout it materializes as a 60-byte FILE named .venv-pmoves, which collides with the real venv directory and would silently demote CODEX_PY to the bare interpreter, the node-local-state failure class. Removed; .gitignore gains the bare path so a symlink cannot slip past the trailing-slash directory rule. - tests/make/test_args_no_leak_to_submake: the funnel entry points now recurse into env-bootstrap-check (no ARGS consumer) instead of env-bootstrap-lite, so the "call sites are actually present" guard counts both targets (>=4 lite all ARGS-cleared, >=3 check, >=7 combined). 32 passed, 1 skipped across the two affected test files; lgtm_marker_check exits 0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017g8jC7dupS2ubafo6zPQY6
|
Pair-review from the 5090 (Windows node), pushed 2430ce6 onto this branch:
Both affected test files: 32 passed / 1 skipped; |
|
Verified on the 5090 (Windows, uv): fresh venv from the new core |
What
env-bootstrap-liteinstallsrequirements-lite.txton every funnel/preflight path — and that file carriedsentence-transformers+scikit-learn, dragging torch and the multi-GB nvidia wheel stack into secrets materialization. Measured 2026-09-05: bothsecrets-funnel-from-prodandsecrets-funnel-sync-from-bundletimed out mid-CUDA-wheel-download on a node at 98% disk (25G free).requirements-lite-embeddings.txt(the actual embedding-decode consumers), opt-in via--with-embeddings, CPU-wheel-index documentedchit_backend.pyheavy imports made defensive (matchingchit_decoder.py's existing pattern) — imports clean without the tierTesting
import torchfails (as intended)import chit_backendin a core-only venv: clean,SentenceTransformer is None and KMeans is None✓chit-manifest-sync→ bootstrap) no longer resolves any nvidia-* wheelWarning
Generated with Crush