v0.2.9
Patch Release v0.2.9
Ships post-v0.2.8 work already merged to main but unreleased.
PR #36 — dedicated IPC_RT perf fix (#5 soak deadlock)
Decouples IPC server fan-out from the shared BLOCKING_RT (8-worker clamp). Root cause of soak_stress.py deadlock: 64 connections × ~2 long tasks = 128+ tasks starving 8 shared workers → dispatch never scheduled → response frames never written → client 30s timeout.
Fix: dedicated IPC_RT (multi-thread, clamp(4,16) workers) for serve_blocking + probe_runtime. BLOCKING_RT stays for in-process run() path. 0 new deps, 0 new unsafe.
PR #37 — proptest + long_stability harness (enterprise caveats #4/#6)
- #4 (no fuzz tooling): cargo-fuzz needs nightly (host stable-only) → proptest on stable — 4 property tests × 256 cases over
SecurityGuard::validate()(panic-safety, dangerous-prefix block, ReDoS <1s, compound whitelist invariant). - #6 (no long stability test):
scripts/long_stability.py— N-min sustained mixed exec+stream traffic vs realserve()subprocess, 8-worker concurrency, RSS sampling (no-leak <200MB, no-hang 60s budget, error-rate <1%).
RSS watchdog test fix
rss_watchdog_kills_memory_bomb / rss_watchdog_streaming_path failing: macOS memory compression compresses the 1GB virtual bomb to ~200MB physical RSS, below the 256MB threshold → watchdog correctly did NOT fire. Watchdog logic correct (physical RSS = true OOM metric). Fix: threshold 256MB → 64MB (3× margin, preserves OOM semantics).
Verify
cargo fmt --all -- --check✓cargo clippy --workspace --all-targets -- -D warnings✓ (only upstreamblock v0.1.6future-incompat)cargo test --workspace— 519 passedmaturin develop --release—fusion_executor-0.2.9-cp314wheelruff check . && ruff format --check .✓pytest python/tests— 220 passed, 1 skipped (TCC)
Full Changelog: v0.2.8...v0.2.9