claude-flow 3.56.2 → 3.56.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ sha256:6141a8ea990c5063b77e090ae8f37f9c539d8aa8f58dcceb30f3a82f97e57319
@@ -0,0 +1,42 @@
1
+ {
2
+ "adoptedAt": 1791580942030,
3
+ "championId": "sha256:6141a8ea990c5063b77e090ae8f37f9c539d8aa8f58dcceb30f3a82f97e57319",
4
+ "manifest": {
5
+ "schema": "ruflo.proven-config/v1",
6
+ "policy": {
7
+ "ref": "sha256:6141a8ea990c5063b77e090ae8f37f9c539d8aa8f58dcceb30f3a82f97e57319",
8
+ "value": {
9
+ "alpha": 0.3,
10
+ "subjectWeight": 1,
11
+ "mmrLambda": 0.5,
12
+ "bodyWeight": 1.5,
13
+ "typePenaltyFactor": 0.5
14
+ }
15
+ },
16
+ "layer": "framework/node-cli",
17
+ "compatibility": {
18
+ "ruflo": ">=3.24.0"
19
+ },
20
+ "benchmark": {
21
+ "corpus": "ADR-081-labelled-v1",
22
+ "corpusHash": "sha256:2f700b5c363e20a3bd88ce2bc9b87bbbbaa61732c6177894c6ec37890f888982"
23
+ },
24
+ "receipt": {
25
+ "heldOutDelta": 0.07381404928570845,
26
+ "redblue": "PASS",
27
+ "drift": 0,
28
+ "canary": {
29
+ "rollbackRate": 0,
30
+ "latencyP95": 244.612458000076,
31
+ "costPerTask": 0
32
+ },
33
+ "receiptCoverage": 1
34
+ },
35
+ "platform": [
36
+ "linux",
37
+ "macOS",
38
+ "windows"
39
+ ]
40
+ },
41
+ "previous": ""
42
+ }
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-flow",
3
- "version": "3.56.2",
3
+ "version": "3.56.3",
4
4
  "workspaces": [
5
5
  "v3/@claude-flow/codex",
6
6
  "v3/@claude-flow/mcp",
@@ -101,7 +101,7 @@
101
101
  "@ruvector/router": "^0.1.31",
102
102
  "@ruvector/router-linux-x64-gnu": "^0.1.31",
103
103
  "@ruvector/sona": "^0.1.5",
104
- "agentdb": "^3.0.0-alpha.17",
104
+ "agentdb": "^3.0.0-alpha.20",
105
105
  "agentic-flow": "^2.0.14",
106
106
  "better-sqlite3": "12.9.0"
107
107
  },
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "generation": 7,
4
- "generatedAt": "2026-10-09T17:22:50.548Z",
5
- "gitSha": "9f97475f",
4
+ "generatedAt": "2026-10-09T21:52:00.476Z",
5
+ "gitSha": "8c60c8c7",
6
6
  "catalog": {
7
7
  "agents": 176,
8
8
  "tools": 423,
@@ -2600,8 +2600,12 @@ export const hooksSessionEnd = {
2600
2600
  try {
2601
2601
  await bridge?.shutdownBridge();
2602
2602
  }
2603
- catch {
2604
- // Cleanup is best-effort and must not fail session-end.
2603
+ catch (err) {
2604
+ // Cleanup is best-effort and must not fail session-end, but a failed
2605
+ // AgentDB persist (lock/concurrent writer) is never silent.
2606
+ if (err?.code === 'AGENTDB_LOCK_UNRECOVERABLE') {
2607
+ process.stderr.write(`[ruflo] warning: ${err.message}\n`);
2608
+ }
2605
2609
  }
2606
2610
  }
2607
2611
  return {
@@ -2087,16 +2087,25 @@ export function shutdownBridge() {
2087
2087
  if (activeOperations > 0)
2088
2088
  await new Promise(resolve => { drained = resolve; });
2089
2089
  await Promise.allSettled([...registryPromises.values()]);
2090
+ // A failed PERSIST (AGENTDB_LOCK_UNRECOVERABLE: live lock or concurrent
2091
+ // writer on a sql.js database) means pending changes were not saved. That
2092
+ // is surfaced after cleanup completes; other close errors stay best-effort.
2093
+ let persistFailure;
2090
2094
  for (const registry of new Set(registryInstances.values())) {
2091
2095
  try {
2092
2096
  await registry.shutdown();
2093
2097
  }
2094
- catch { /* best-effort cleanup */ }
2098
+ catch (err) {
2099
+ if (err?.code === 'AGENTDB_LOCK_UNRECOVERABLE')
2100
+ persistFailure ??= err;
2101
+ }
2095
2102
  }
2096
2103
  registryInstances.clear();
2097
2104
  registryPromises.clear();
2098
2105
  testRegistryOverride = null;
2099
2106
  bridgeFailureReasons.clear();
2107
+ if (persistFailure)
2108
+ throw persistFailure;
2100
2109
  })().finally(() => { shutdownPromise = null; });
2101
2110
  return shutdownPromise;
2102
2111
  }