@claude-flow/cli 3.39.0 → 3.39.1

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": {
3
- "version": "3.39.0",
3
+ "version": "3.39.1",
4
4
  "files": {
5
5
  "auto-memory-hook.mjs": "85fe05c757421c52137c0bc8545a0896bab6b4714538c2a11d1d0835bfcc8c1c",
6
6
  "hook-handler.cjs": "209d9fafe10e17d1be0866727f6f9cf9ac66f9a0793f1c793a4f58319e8e4583",
@@ -8,6 +8,6 @@
8
8
  "statusline.cjs": "4a48353b4f1566fa4379b00fd0321b6676a22b6cc91fbbd8380ac5183d619468"
9
9
  }
10
10
  },
11
- "signature": "ezHXe7aYuhhtcjCgjytboA5ImEY+bpGDC7eJXkqXPmlVHtNyG6I0DPoBUV2SPSeyf4VRRjME3gdANH35XSMmDg==",
11
+ "signature": "EhPwGDVoITfqsCvvoqUwiw/7eE1FzCr2b6aQvgGI/U9q7CCiFMR9HRmhZNjT0n722BPSnz8aNHLakAAU0IOoAw==",
12
12
  "algorithm": "ed25519"
13
13
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "generation": 6,
4
- "generatedAt": "2026-09-08T16:51:58.984Z",
5
- "gitSha": "e341ec8c",
4
+ "generatedAt": "2026-09-09T12:55:40.451Z",
5
+ "gitSha": "d55b1bfe",
6
6
  "catalog": {
7
7
  "agents": 167,
8
8
  "tools": 397,
@@ -40,7 +40,7 @@ declare const STDERR_REDIRECT_PREFIXES: string[];
40
40
  declare const AGENTDB_MOCK_FALLBACK_DROP_PREFIXES: string[];
41
41
  declare const shouldRedirectToStderr: (msg: unknown) => boolean;
42
42
  declare const isAgentdbMockFallbackNoise: (msg: unknown) => boolean;
43
- declare const origWarn: (message?: any, ...optionalParams: any[]) => void;
44
- declare const origLog: (message?: any, ...optionalParams: any[]) => void;
45
- declare const origError: (message?: any, ...optionalParams: any[]) => void;
43
+ declare const origWarn: (...data: any[]) => void;
44
+ declare const origLog: (...data: any[]) => void;
45
+ declare const origError: (...data: any[]) => void;
46
46
  //# sourceMappingURL=log-filters.d.ts.map
@@ -214,7 +214,25 @@ async function describeBackend() {
214
214
  try {
215
215
  const { getHNSWStatus } = await import('../memory/memory-initializer.js');
216
216
  const status = getHNSWStatus();
217
- return status.algorithm === 'hnsw' ? 'sql.js + HNSW' : 'sqlite (bridge, brute-force cosine)';
217
+ if (status.algorithm !== 'hnsw')
218
+ return 'sqlite (bridge, brute-force cosine)';
219
+ // #3228: with the native bridge gated off (the Windows default since
220
+ // 3.38.12), memory tools silently fall back to the sql.js store rather
221
+ // than the AgentDB corpus the bridge would have opened. A bare
222
+ // "sql.js + HNSW" hides that substitution — an upgrade can change which
223
+ // file receives writes while store/retrieve smoke tests still pass,
224
+ // because both operations use the same unintended file. Name the gate.
225
+ try {
226
+ const { shouldDisableNativeBridge, getBridgeFailureReason } = await import('../memory/memory-bridge.js');
227
+ if (shouldDisableNativeBridge()) {
228
+ const reason = getBridgeFailureReason();
229
+ return `sql.js + HNSW (native bridge disabled${reason ? `: ${reason}` : ''})`;
230
+ }
231
+ }
232
+ catch {
233
+ // bridge module unavailable — the plain sql.js label is already accurate
234
+ }
235
+ return 'sql.js + HNSW';
218
236
  }
219
237
  catch {
220
238
  return 'sqlite';
@@ -836,7 +836,17 @@ export function getHNSWStatus() {
836
836
  // name promises — that's false while the bridge is the active path, so
837
837
  // this no longer claims otherwise. Vector search itself still works via
838
838
  // the bridge; `algorithm` tells callers it's brute-force, not HNSW.
839
- if (_bridge && _bridge !== null) {
839
+ //
840
+ // #3228: this branch previously tested only that the bridge MODULE was
841
+ // loaded. On Windows the module imports fine but `getRegistry()` returns
842
+ // null behind the #3024 kill-switch, so every read/write actually goes to
843
+ // the sql.js store while this function still reported the bridge as the
844
+ // active path — `describeBackend()` then printed "sqlite (bridge, ...)"
845
+ // for a store the bridge never touched. Gate on whether the bridge is
846
+ // *permitted to be* the active path, not on whether the module resolved.
847
+ // `shouldDisableNativeBridge()` is sync and a pure function of platform +
848
+ // env, so it is a faithful discriminator here and needs no warm registry.
849
+ if (_bridge && _bridge !== null && !_bridge.shouldDisableNativeBridge()) {
840
850
  return {
841
851
  available: false,
842
852
  initialized: false,
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/cli",
3
- "version": "3.39.0",
3
+ "version": "3.39.1",
4
4
  "type": "module",
5
5
  "description": "Ruflo CLI - Enterprise AI agent orchestration with 60+ specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code",
6
6
  "main": "dist/src/index.js",