Skip to content

v3.10.31 β€” model router + daemon trigger bug-fix patch (#2250, #2251)

Choose a tag to compare

@ruvnet ruvnet released this 31 May 14:49
· 52 commits to main since this release

Bug fixes

#2250 β€” model router escalation overrode Thompson bandit

Trained opus-suppressed priors were discarded by an "escalate one tier up" step that fired on ~every trivial route (the uncertainty formula was structurally >0.6, gate at 0.15). Reporter (@grym3s) measured opus selected ~40% on trivial tasks, haiku never selected.

Fix in v3/@claude-flow/cli/src/ruvector/model-router.ts:

  • Escalation now skips when (a) target mean is meaningfully worse than selected (< selected_mean βˆ’ 0.10), OR (b) selected has confident+decent posterior (Ξ±+Ξ² β‰₯ 5 AND mean β‰₯ 0.45)
  • Cold-start Beta(1,1) priors fail both checks β†’ unlearned routers preserve original conservative behavior
  • New env override: CLAUDE_FLOW_MAX_UNCERTAINTY=0.0..1.0

#2251 β€” daemon trigger -w <worker> raced headless init

Constructor kicked off initHeadlessExecutor() fire-and-forget. On-demand daemon trigger called triggerWorker() immediately after construction, raced the init, and fell through to the local stub in ~2ms. Scheduled fires were unaffected (long-running daemon never raced). Reporter (@shaharKeisarApps).

Fix in v3/@claude-flow/cli/src/services/worker-daemon.ts:

  • New headlessInitPromise field capturing the constructor's init promise
  • triggerWorker() awaits it before checking headlessAvailable

Regression guard

v3/@claude-flow/cli/__tests__/issue-2250-2251-regression.test.ts β€” 4 new tests:

  • Loads reporter's exact suppressed-opus prior, asserts opus rate <20% AND haiku selected β‰₯1 time over 50 trivial routes
  • Cold-start preservation
  • Env override
  • Deferred-promise harness proves executeWorker() cannot fire until headlessInitPromise resolves

All 12 router + daemon tests pass. TypeScript clean.

Install

npx ruflo@latest                # or @alpha / @v3alpha
npx @claude-flow/cli@latest
npx claude-flow@latest

All three packages published to npm, all three dist-tags (latest, alpha, v3alpha) pointing at 3.10.31.

What's NOT in this release

5-dataset BEIR benchmark work (TREC-COVID ingest still in flight) β†’ ships as 3.10.32.