v3.58.0

ruvnet/ruflov3.58.0Oct 20, 2026by ruvnet

Upgrading?

AI Summary

This minor release addresses a critical installation failure caused by a missing dependency and introduces several backward-compatible features, including a new memory peek command, a Codex activity viewer, and configurable MCP rate limits.

Key Highlights

  • Fixed a critical install-breaking bug where `@claude-flow/memory@3.0.6` was missing, preventing fresh installs of 3.57.x.
  • Added a new `memory peek` command to inspect store files without initializing them.
  • Introduced the `@claude-flow/codex activity` command to view Codex helper session details.
  • Implemented configurable HTTP and per-session rate limits for MCP.

New Features

  • New `memory peek` command for inspecting store files.
  • New `@claude-flow/codex activity` command to view Codex session details.
  • Configurable HTTP and per-session rate limits for `mcp start`.
  • Added `audit-leaf-versions-published.mjs` CI script to validate package versions before release.

Full Release Notes

## [3.58.0] - 2026-10-20

Minor release: `@claude-flow/cli`, `claude-flow`, `ruflo` 3.58.0. Backward-compatible additions (new `memory peek` command, a Codex session activity viewer, configurable MCP rate limits) plus a critical install-breaking fix and a round of correctness fixes.

### Fixed

- **Critical**: `@claude-flow/cli@3.57.2` pinned `@claude-flow/memory@3.0.6`, which had never been published, so every fresh install of the 3.57.x line failed with `ETARGET` (#4303). Published `@claude-flow/memory@3.0.6` standalone (verified against a clean install) and added `scripts/audit-leaf-versions-published.mjs` — a new, now-required CI check that queries the live npm registry for every non-bundled leaf pin so a PR that bumps a pin ahead of its own leaf's publish fails before merge, not after release (#4304).
- `agent spawn --name` was accepted and echoed by the CLI but never persisted to the `AgentRecord`, so `ruflo-console` could only label agents by type (#4300/#4301).
- `agent list --all` sent a literal `status: 'all'` that `agent_list` doesn't recognize, filtering out every agent; `agent list --type` was accepted but never read (#4302).
- `claims_claim`'s `expiresAt` was declared but unsettable by any handler, and the claims-load utilization math duplicated the max-claims threshold as a second magic literal (#3180/#3927).
- A stale docstring on `InMemoryClaimRepository` claimed SQLite-backed persistence that doesn't exist in this package (#3179/#3926).
- The persistent embedding cache raced concurrent cold callers into redundant SQLite initializations, and its FNV-1a cache key could collide for distinct equal-length inputs, including the lone-surrogate case (#3685, #3681).
- The embedding model cache directory could be unwritable for non-root runtime users, permanently caching the mock fallback with no retry path (#3692/#3831).
- `ruflo-mods`' risky-call/event classifier was missing several calls and hook events (`agent.register`, `tool.call`, `session.append`, read-side forgery vectors like `fs.read`/`env.get`, and more) that can rewrite or forge what other mods decide by — strictly widened, nothing un-flagged (#3802).
- `ruflo-x-gateway` could crash on a malformed relay frame instead of failing fast on the one relay connection affected (#3921).
- The standalone terminal console (`npx ruflo tui`) gave no on-screen indication that mouse support is off by default, silently dropped the `0 menu` hint from the footer below 80 columns, and dropped a mouse press+release pair when a terminal (tmux especially) coalesced them into one data chunk (#4305).
- CI reliability, found while validating this release (#4307): `v3/@claude-flow/memory`'s FTS5 tests located `sql-wasm.wasm` via a `sql.js/package.json` subpath resolve, which sql.js 1.14's tightened `exports` map rejects even though the file exists — now resolves `sql.js/dist/sql-wasm.wasm` directly; `plugins/ruflo-business-pods/scripts/pod-tick.test.mjs` (a `node:test` file) was miscategorized into the vitest-can-run-it baseline instead of the node:test-only exclusion list (#4308); `plugins/ruflo-graph-intelligence`'s knowledge-graph adapter built its optional `@claude-flow/cli` import specifier as a string literal that a bundler's static scan could eagerly (and wrongly) try to resolve during test collection, outside the method's own try/catch — now built from joined parts; the root test-suite ratchet's default vitest worker count intermittently crashed with `ERR_IPC_CHANNEL_CLOSED` partway through the ~9500-test suite — capped at 2 workers as a stopgap pending real root-cause work; `tests/all-plugins-smoke-workflow.test.mjs`'s hardcoded `timeout-minutes: 10` expectation went stale when #3950 raised the real value to 15 for the new external-plugin smoke step.

### Added

- `memory peek` — a read-only command that reports which store files the current directory resolves to, row counts, last-write time, and WAL state, without ever creating, initializing, or migrating anything (#3508/#3620).
- `@claude-flow/codex activity` — inspect a Codex helper's assignment, recorded state, progress, and tool calls/results from an existing session, with symlink-safe, TOCTOU-resistant file access and best-effort credential masking in previews (#3930/#3962).
- `mcp start` now supports configurable HTTP and per-session rate limits (#3694).

Related Repositories