Project releases

Ruflo 3.56.3 makes interrupted memory saves visible and recoverable

The sql.js memory path retries one provably stale lock, refuses live or uncertain locks and surfaces failed shutdown saves.

GitHub activity: · Published:

A guarded memory retry

The stale branch can retry once. The live or uncertain branch must stay closed.

Explanatory diagram · not live telemetry
Explanatory connectionsA requested save inspects a lock. Restrictive stale checks permit one retry; a live or uncertain lock stops. The final result is saved data or a visible error.Explanatory connectionsA requested save inspects a lock. Restrictive stale checks permit one retry; a live or uncertain lock stops. The final result is saved data or a visible error.

Save requested

sql.js memory path only

Inspect lock

Exact name, dead PID, age >10s

Provably stale

Rename, re-verify, retry once

Live / uncertain

Stop; do not delete the lock

Saved or visible error

Shutdown failures reach the caller

What changed

Ruflo 3.56.3 fixes a sql.js failure in which a crashed writer’s AgentDB lock prevented every later memory save. The memory package checks that the lock is genuinely stale before removing it, retries once and otherwise reports an error. Failed persistence during shutdown is now visible instead of swallowed.

The umbrella packages ruflo, claude-flow and @claude-flow/cli are 3.56.3; the memory leaf is 3.0.3. AgentDB’s dependency floor advances to 3.0.0-alpha.20, with changed embedding dependencies that can shift similarity scores. Applications using fixed thresholds should re-evaluate them. This is not recovery for native better-sqlite3, and not the later swarm 3.0.2 broadcast fix.

Get started

Use your existing Ruflo dependency workflow on Node >=20, in a disposable project. npm view should report 3.56.3.

Documentation-verified only. We did not install this release, execute these commands or reproduce the maintainers’ tests.

npm view ruflo@3.56.3 version

This patch adds no new MCP endpoint or skills setup; it changes memory persistence, not the transport contract.

Use it today

If your application uses sql.js memory, update through its existing dependency workflow and test write, shutdown and reload in a disposable project. Confirm failures reach the caller. Never delete a lock just because it exists.

Experimental commentary — acceptance test

Acceptance: interrupt a disposable writer, then confirm a later save recovers a provably stale lock or refuses a live/ambiguous one. Check the stored data after restart and retest application score thresholds. Automatic recovery is deliberately limited, not universal.

Limits and verification

  • Recovery requires the exact regular-file name, numeric dead PID, age over ten seconds, atomic rename-aside and re-verification. It retries once.
  • AgentDB remains alpha. Release notes disclose a registry signature but no npm provenance attestation for alpha.20.
  • No independent runtime verification or blanket crash-recovery guarantee.

Read the original on Ruflo v3.56.3 release

v3.56.3

Ruflo repository

Back to the newsroom