Skip to content

Commit 5ae683a

Browse files
committed
Merge branch 'development': per-process Python shims, quantum healing fixes & CI stability
Major architectural shift from global interpreter mutation (symlinks + single config) to per-process isolation via shims — no global state pollution. Core Architecture: - CLI now uses version-aware dispatcher (omnipkg.dispatcher:main) - Per-interpreter configs (.omnipkg_config.json stored in each python's bin/) - Version aliases (8pkg311, 8pkg310, etc.) inject --python flag for one-shot commands - 8pkg swap python spawns isolated subshell with shim PATH prefix + OMNIPKG_PYTHON set - Shims intercept python calls, read OMNIPKG_PYTHON, route to correct interpreter — affects only that shell/process - Cleanup logic ignores leaked OMNIPKG_PYTHON when shell/conda env changes Quantum Healing (activation fixed): - Now properly triggers during install validation on incompatible Python (e.g. TF 2.20 → auto-swap to 3.13 → install → swap back) - Uses _OMNIPKG_QUANTUM_HEALING flag to distinguish automated vs user-initiated swaps - Shell context fully preserved — returns to original Python after healing Key Improvements: - Non-interactive mode auto-detected (TTY/CI/Docker/first-setup) → no subshell in pipelines - PersistentWorker scrubs LD_LIBRARY_PATH/PYTHONPATH → fixes torch import contamination - Daemon idle pools now per-python → prevents version mismatch races - ABI fixes: dependency constraints, numpy dtype size errors - Full Python 3.15.0a5 support + safety skipping on 3.15+ - Test upgrades: DaemonProxy everywhere, warmup phase, tensor math in circular switching - i18n: ~2k Arabic/Amharic strings via AI consensus chain - CI hardening: Windows daemon polling, deadlock fixes, no-paid-scanners workflow Shell Isolation Example: $ python –version → 3.11 $ 8pkg swap python 3.10 → new shell $ python –version → 3.10 $ exit $ python –version → 3.11 $ 8pkg311 info python → one-shot in 3.11 BREAKING CHANGE: Global interpreter state (symlinks, single config) removed. Switching now occurs per-shell/process via shims and OMNIPKG_PYTHON env var. Use 8pkg swap python or version aliases instead of relying on global mutation. Closes: global state pollution, quantum healing activation bugs, ABI/worker contamination, CI deadlocks, interactive CI hangs Net diff: +9042 / -5477 lines across 18 files. All CI green.
1 parent 83c73ec commit 5ae683a

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

src/omnipkg/core.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2900,6 +2900,9 @@ def _first_time_setup(self, interactive=True) -> Dict:
29002900
safe_print(_(" ✅ Using default configuration (non-interactive mode)"))
29012901

29022902
# Save configuration
2903+
# ENSURE PARENT DIRECTORY EXISTS
2904+
self.config_path.parent.mkdir(parents=True, exist_ok=True)
2905+
29032906
try:
29042907
with open(self.config_path, "r") as f:
29052908
full_config = json.load(f)

0 commit comments

Comments
 (0)