v3.5.48
ruvnet/ruflov3.5.48Mar 26, 2026by ruvnet
AI Summary
This release (v3.5.48) delivers significant security hardening with prototype pollution prevention, NaN/Infinity bypass protection, and task source allowlisting. It also addresses token drain issues by reducing background workers and changing defaults to opt-in, while fixing critical P1 bugs including HNSW ghost entries and orphan processes. The release exposes new RuVector WASM CLI commands and includes an audit/improvement plan (ADR-067).
Key Highlights
- Security hardening: prototype pollution prevention via safeJsonParse(), NaN/Infinity bypass protection, task source allowlist, and atomic file writes
- Token drain prevention: daemon autoStart and session hook startDaemon now default to false (opt-in), background workers reduced from 10 to 3
- P1 bug fixes: HNSW index invalidation on delete (#1122), worker timeout increased from 5min to 16min for orphan processes (#1117)
- RuVector WASM CLI exposure: 4 new commands (wasm-status, wasm-create, wasm-prompt, wasm-gallery) per ADR-067
- All 1725 tests pass across 28 test files
Breaking Changes
- Daemon autoStart now defaults to false (was likely true by default) — requires explicit opt-in
- Session hook startDaemon now defaults to false — requires explicit opt-in
- Background workers reduced from 10 to 3 — may impact performance for heavy workloads
- Worker timeout increased from 5min to 16min — longer wait for stale worker cleanup
New Features
- safeJsonParse() strips __proto__, constructor, prototype to prevent prototype pollution
- validateNumber() includes NaN/Infinity bypass protection
- VALID_TASK_SOURCES allowlist prevents task source injection
- Atomic file writes (tmp + rename) for state persistence
- Shared autopilot-state.ts module eliminates 140 lines of code duplication
- HNSW index invalidation on bridge delete to fix ghost entries
- 4 new CLI commands: agent wasm-status, agent wasm-create, agent wasm-prompt, agent wasm-gallery
- ADR-067: RuVector WASM utilization audit and improvement plan
Full Release Notes
## What's New ### Security Hardening (v3.5.45) - Prototype pollution prevention via `safeJsonParse()` — strips `__proto__`, `constructor`, `prototype` - NaN/Infinity bypass protection in `validateNumber()` - Task source allowlist (`VALID_TASK_SOURCES`) prevents injection - Atomic file writes (tmp + rename) for state persistence - Shared `autopilot-state.ts` module eliminates 140 lines of duplication ### Token Drain Prevention (v3.5.46) — #1427, #1330 - Daemon `autoStart` defaults to `false` (opt-in only) - Session hook `startDaemon` defaults to `false` - Background workers reduced 10 → 3, schedules relaxed (audit 4h, optimize 2h) ### P1 Bug Fixes (v3.5.47) - **#1122**: HNSW ghost entries — bridge delete path now invalidates HNSW index - **#1117**: Orphan processes — worker timeout raised 5min → 16min - **#1111**: Headless stdin pipe hang — already fixed (closed) - **#1109**: classifyHandoffIfNeeded — Claude Code platform issue (closed) ### RuVector WASM CLI Exposure (v3.5.48) - **ADR-067**: RuVector WASM utilization audit and improvement plan - 4 new CLI commands: `agent wasm-status`, `agent wasm-create`, `agent wasm-prompt`, `agent wasm-gallery` - Fixed 16 pre-existing ruvllm-wasm test failures (mock constructors) ## Test Results - 28/28 test files pass - 1725/1725 tests pass, 0 failures ## Install ```bash npx @claude-flow/cli@latest npx claude-flow@latest npx ruflo@latest ```