Completes the intelligence-audit punch-list with the fixable items, and
documents the honest ceilings for the rest.
FIXED
- Per-task bandit priors (ADR-142): model-router Beta priors are now keyed by
complexity bucket (low/med/high) instead of global-per-model, so failures on
one task type no longer suppress a model for ALL types. Backward-compatible
schema migration (v1 flat -> seed all buckets, version:2). +isolation +migration
tests; router-bandit suite made bucket-aware (8/8).
- EWC++ honesty: header doc clarifies F_i is a heuristic embedding-importance
proxy (embedding_i^2), not true gradient-curvature Fisher.
- HNSW backend label: getStatus().backend -> 'ruvector-native' vs
'ruvector-stub-search-disabled'. isWasm()===true means the broken stub
(search returns []), not acceleration, so a regression is now visible.
- MicroLoRA: fixed the genuine applyUpdates() signature bug (passed Float32Array
where the WASM runtime wants a scalar learning rate).
HONEST CEILINGS (re-confirmed NOT fixable in-repo, documented in the audit ledger)
- WASM-accelerated HNSW: no WASM HNSW build exists in the stack; native NAPI is
already fastest (~1.9-6.5x at N=20k); 150x-12,500x unreachable here.
- WASM MicroLoRA apply(): empirically still inert after the flush (delta=0); we
do NOT fabricate a gradient from scalar quality to fake adaptation.
Verification: cli build clean; 23/23 targeted tests pass (bandit 8 + bug-cluster 15).
* feat(workflows): add native Workflow JS orchestration surface (ADR-0002)
ruflo-workflows now documents both workflow surfaces: the existing 10
workflow_* MCP tools and the native Claude Code Workflow JS capability
(.claude/workflows/*.js — agent/parallel/pipeline/phase fan-out).
- ADR-0002 (Accepted): adopts native orchestration alongside the MCP surface
- Reference workflow .claude/workflows/plugin-contract-audit.js (fans smoke
contracts across all plugins, diagnoses failures in parallel)
- README: native orchestration section + four-hook API + surface decision table
- workflow-create/workflow-run skills, workflow-specialist agent, /workflow
command made surface-aware
- plugin.json 0.3.0 -> 0.4.0; native-workflow keywords + component block
- smoke.sh reconciled (stale version + ADR-0001 status) and extended 11 -> 15
checks; smoke-gaia.sh version assertion bumped to 0.4.0
Co-Authored-By: RuFlo <ruv@ruv.net>
* fix(routing): #bugB stale route cache + #bugC --explore false (3.10.8)
Two routing-learning correctness bugs from the intelligence audit's remaining
punch-list (docs/reviews/intelligence-system-audit-2026-05-29.md §Remediation).
- Bug B (stale route cache): 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 update() invalidates
the updated state's cache entry immediately (new invalidateCacheEntry).
Verified: learned route flips coder→researcher within 10 updates (was 50+).
- Bug C (--explore false ignored): boolean flags dropped an explicit space-form
value, forcing a default-true boolean (explore) to true even with
, so exploitation could never be forced. parser.ts now
consumes a true/false literal for boolean flags (--explore false / -e false),
while --explore=false and --no-explore keep working. Verified deterministic.
+4 regression tests (15/15 bug-cluster pass); 52/52 parser tests pass; cli
build clean. Audit doc updated with full remediation status (3.10.7 + 3.10.8
shipped; SONA-default/MicroLoRA/EWC-Fisher/per-task-bandit deferred with
honest rationale — the latter two need an ADR/upstream fix, not a patch).
Co-Authored-By: RuFlo <ruv@ruv.net>