@claude-flow/cli 3.27.2 → 3.27.4

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 +1 @@
1
- 3.23.0
1
+ 3.25.6
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "manifest": {
3
- "version": "3.27.2",
3
+ "version": "3.27.4",
4
4
  "files": {
5
5
  "auto-memory-hook.mjs": "68be7e9a9eba7bf9c4e8a230db7bf61a243b965639f8504842799d6c6ca28762",
6
6
  "hook-handler.cjs": "2e4927ff158c0079a67a6f0ef0b99ac748d600d33798b0a5fbd5a6a82225ec03",
7
7
  "intelligence.cjs": "bd1f8e4b034944aee1df0391dc47ac2e8cc4b3aa542c65407a59d49620bbf76b",
8
- "statusline.cjs": "f553f12a34e7df405a64501cdedb684374ef92670279380bc95f625fc68b2d1b"
8
+ "statusline.cjs": "19586a8052bd032cea909a2d020f680aa8da31f5c4229068af612811cc694d5a"
9
9
  }
10
10
  },
11
- "signature": "40Y8+mFRgH7LZZ5TeeDM6aIUcAKrNaN82nyJJzFyepx/HM1chZeK2yEUIbtPhyE0PdyoO4W1OuR3mlxLHgBjCA==",
11
+ "signature": "y9y4o3fDtk7y2fBJy4NFbL3SF2Rog1GyVougqEHupMzxLctiKjS+k51WSnO35cFCUsMO6It3Vh30cNPsSwlzCA==",
12
12
  "algorithm": "ed25519"
13
13
  }
@@ -597,7 +597,6 @@ function getCostFromStdin() {
597
597
  return null;
598
598
  }
599
599
 
600
- // Read package version from the first package.json we find.
601
600
  // Compares dotted-numeric version strings (e.g. "3.27.1" vs "3.27.10").
602
601
  // Returns >0 if a>b, <0 if a<b, 0 if equal-as-far-as-parseable. Deliberately
603
602
  // simple (no prerelease/build-metadata handling) — this only orders local
@@ -615,7 +614,11 @@ function compareVersions(a, b) {
615
614
  }
616
615
 
617
616
  function getPkgVersion() {
618
- let ver = '3.6';
617
+ // Baked in at generation time from the real running CLI's own resolved
618
+ // version (see generateStatuslineScript()'s doc comment) — correct even
619
+ // when this renders via a pure npx invocation with no local install for
620
+ // the candidate scan below to find.
621
+ let ver = "3.27.4";
619
622
  try {
620
623
  const home = os.homedir();
621
624
  const pkgPaths = [
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "generation": 1,
4
- "generatedAt": "2026-07-14T04:02:10.768Z",
5
- "gitSha": "dbcfe15f",
4
+ "generatedAt": "2026-07-14T04:41:45.824Z",
5
+ "gitSha": "b254e321",
6
6
  "catalog": {
7
7
  "agents": 164,
8
8
  "tools": 387,
@@ -468,7 +468,9 @@ const initAction = async (ctx) => {
468
468
  output.writeln(output.bold('Next steps:'));
469
469
  output.printList([
470
470
  `Run ${output.highlight(`${bin} daemon start`)} to start background workers`,
471
- `Run ${output.highlight(`${bin} memory init`)} to initialize memory database`,
471
+ // Memory is initialized automatically during init (persistent by
472
+ // default — see executor.ts) — no separate `memory init` step needed
473
+ // unless the DB was skipped (MINIMAL_INIT_OPTIONS) or needs --force.
472
474
  `Run ${output.highlight(`${bin} swarm init`)} to initialize a swarm`,
473
475
  `Or use ${output.highlight(`${bin} init --start-all`)} to do all of the above`,
474
476
  options.components.settings ? `Review ${output.highlight('.claude/settings.json')} for hook configurations` : '',
@@ -212,15 +212,39 @@ export async function executeInit(options) {
212
212
  // the `vector_indexes` table (older CLI / agentdb-written), self-heal it
213
213
  // so the statusline vector count + namespace routing work. Best-effort,
214
214
  // dynamically imported so a WASM-only host without better-sqlite3 just
215
- // skips it. Fresh projects have no DB yet — this is a no-op there.
215
+ // skips it.
216
+ //
217
+ // Persistent memory ON BY DEFAULT: `runtime.memoryBackend` already
218
+ // defaults to 'hybrid' in DEFAULT_INIT_OPTIONS, but that only ever
219
+ // configured the DECLARED backend — the actual .swarm/memory.db file
220
+ // was never created until something eventually called `memory store`
221
+ // or the user ran `memory init --force` by hand (both the generated
222
+ // CLAUDE.md and the quickstart docs told users to do this as a
223
+ // separate step). A fresh project could sit for days looking
224
+ // "configured for AgentDB" while genuinely capturing nothing, with no
225
+ // signal that the config and the on-disk reality had diverged. Fresh
226
+ // projects now get the DB eagerly created here, matching what
227
+ // `memoryBackend` already promised; MINIMAL_INIT_OPTIONS
228
+ // (memoryBackend: 'memory') opts out, matching its non-persistent intent.
216
229
  try {
217
230
  const memDbPath = path.join(targetDir, '.swarm', 'memory.db');
218
231
  if (fs.existsSync(memDbPath)) {
219
232
  const { repairVectorIndexes } = await import('../memory/memory-initializer.js');
220
233
  await repairVectorIndexes(memDbPath, { autoRecover: true });
221
234
  }
235
+ else if (options.runtime.memoryBackend !== 'memory') {
236
+ const { initializeMemoryDatabase } = await import('../memory/memory-initializer.js');
237
+ const initResult = await initializeMemoryDatabase({
238
+ backend: options.runtime.memoryBackend,
239
+ dbPath: memDbPath,
240
+ verbose: false,
241
+ });
242
+ if (initResult.success) {
243
+ result.created.files.push('.swarm/memory.db');
244
+ }
245
+ }
222
246
  }
223
- catch { /* best-effort — never block init on memory repair */ }
247
+ catch { /* best-effort — never block init on memory setup */ }
224
248
  }
225
249
  // Generate statusline
226
250
  if (options.components.statusline) {
@@ -9,6 +9,7 @@
9
9
  * - Shared settings cache
10
10
  * - Strict 2s timeouts on all shell calls
11
11
  */
12
+ import { getInstalledCliVersion } from './helper-refresh.js';
12
13
  /**
13
14
  * Generate optimized statusline script
14
15
  * Output format:
@@ -21,6 +22,18 @@
21
22
  */
22
23
  export function generateStatuslineScript(options) {
23
24
  const maxAgents = options.runtime.maxAgents;
25
+ // Resolved reliably HERE (inside the actual running CLI process, via
26
+ // getInstalledCliVersion()'s createRequire/findPackageRoot resolution) —
27
+ // never wrong at generation time. Baked in as getPkgVersion()'s fallback
28
+ // so a pure-npx render (no persistent local install: no marketplace
29
+ // checkout, no project node_modules, nothing under a global prefix — npx
30
+ // only ever installs into its own ephemeral, unpredictably-hashed
31
+ // ~/.npm/_npx/<hash>/ directory, which none of getPkgVersion()'s
32
+ // candidate paths can find) shows the real version instead of the
33
+ // previous hardcoded "3.6" placeholder. getPkgVersion()'s own runtime
34
+ // candidate scan still wins over this baked-in value when it finds
35
+ // something newer (e.g. a later `npm update` in the same project).
36
+ const bakedVersion = getInstalledCliVersion();
24
37
  return `#!/usr/bin/env node
25
38
  /**
26
39
  * RuFlo V3 Statusline — delegation build (#2195)
@@ -620,7 +633,6 @@ function getCostFromStdin() {
620
633
  return null;
621
634
  }
622
635
 
623
- // Read package version from the first package.json we find.
624
636
  // Compares dotted-numeric version strings (e.g. "3.27.1" vs "3.27.10").
625
637
  // Returns >0 if a>b, <0 if a<b, 0 if equal-as-far-as-parseable. Deliberately
626
638
  // simple (no prerelease/build-metadata handling) — this only orders local
@@ -638,7 +650,11 @@ function compareVersions(a, b) {
638
650
  }
639
651
 
640
652
  function getPkgVersion() {
641
- let ver = '3.6';
653
+ // Baked in at generation time from the real running CLI's own resolved
654
+ // version (see generateStatuslineScript()'s doc comment) — correct even
655
+ // when this renders via a pure npx invocation with no local install for
656
+ // the candidate scan below to find.
657
+ let ver = ${JSON.stringify(bakedVersion)};
642
658
  try {
643
659
  const home = os.homedir();
644
660
  const pkgPaths = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/cli",
3
- "version": "3.27.2",
3
+ "version": "3.27.4",
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",