v3.10.8
ruvnet/ruflov3.10.8May 29, 2026by ruvnet
AI Summary
Two routing-learning correctness fixes: stale route cache and --explore false flag parsing. Both verified with tests.
Key Highlights
- Bug B: Route cache invalidation fixed - updated state cache entry invalidated immediately
- Bug C: --explore false now works - boolean flags consume true/false literals
- Verified: route flips within 10 updates, deterministic exploitation
- CI 31/31 green
New Features
- Immediate route cache invalidation on Q-update
- Boolean flag parsing for true/false literals
Full Release Notes
## Ruflo v3.10.8 — routing-learning correctness fixes Two follow-up fixes from the intelligence audit's remaining punch-list (`docs/reviews/intelligence-system-audit-2026-05-29.md`). ### Bug B — stale route cache hid learning `QLearningRouter.update()` only invalidated the whole route cache every 50 updates, so a freshly-learned Q-update stayed hidden behind a stale cached decision — feedback appeared to have **no effect on routing** in-process until 50 updates accumulated. Now the updated state's cache entry is invalidated immediately. **Verified:** learned route flips `coder→researcher` within 10 updates. ### Bug C — `--explore false` was ignored Boolean flags dropped an explicit space-form value, so a default-true boolean (`explore`) stayed `true` even with `--explore false` — exploitation could not be forced. The parser now consumes a `true`/`false` literal for boolean flags (`--explore false`, `-e false`); `--explore=false` and `--no-explore` keep working. **Verified:** deterministic exploitation with `explore=false`. ### Deferred (documented in the audit, not patched) - SONA default-path: re-examined — the default path already learns via `LocalSonaCoordinator`; the inert piece is a non-load-bearing supplementary forward. - WASM MicroLoRA `apply()` inert — lives in the `@ruvector/ruvllm` dependency (needs upstream fix). - Per-task bandit priors — changes a persisted schema (needs an ADR + migration). All three packages published at 3.10.8 (`latest`/`alpha`/`v3alpha` in lockstep). CI: 31/31 green. 🤖 Generated with [RuFlo](https://github.com/ruvnet/ruflo)