@claude-flow/cli 3.38.3 → 3.38.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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest": {
|
|
3
|
-
"version": "3.38.
|
|
3
|
+
"version": "3.38.4",
|
|
4
4
|
"files": {
|
|
5
5
|
"auto-memory-hook.mjs": "85fe05c757421c52137c0bc8545a0896bab6b4714538c2a11d1d0835bfcc8c1c",
|
|
6
6
|
"hook-handler.cjs": "dae295fb9ae2626b89899c19a20cc911541af82b52d2eeb9b214d618b96e9a86",
|
|
@@ -8,6 +8,6 @@
|
|
|
8
8
|
"statusline.cjs": "0457fe53f8cd2c56458ff178392536a5868efd1a573665fa43bc01d2d95ca677"
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
|
-
"signature": "
|
|
11
|
+
"signature": "pebcqTgxAwqxE5P2CeHtJGeddXdUluZcIkdlIrCo9NAjkNEFTiwV/PUltPtEvyYQ5uYu1AaZjbT/2qz3/YIhAg==",
|
|
12
12
|
"algorithm": "ed25519"
|
|
13
13
|
}
|
package/catalog-manifest.json
CHANGED
|
@@ -496,8 +496,16 @@ const initClaudeAction = async (ctx) => {
|
|
|
496
496
|
const force = ctx.flags.force;
|
|
497
497
|
const minimal = ctx.flags.minimal;
|
|
498
498
|
const full = ctx.flags.full;
|
|
499
|
-
|
|
500
|
-
|
|
499
|
+
// #2952 — every long-flag write path in the parser goes through
|
|
500
|
+
// normalizeKey() (parser.ts:399-402), which converts kebab-case to
|
|
501
|
+
// camelCase before storing. `--skip-claude`/`--only-claude`/
|
|
502
|
+
// `--all-agents`/`--cloud-mcp` land as `flags.skipClaude`/`flags.onlyClaude`/
|
|
503
|
+
// `flags.allAgents`/`flags.cloudMcp` — there is no code path that ever
|
|
504
|
+
// stores the literal kebab-case key. Reading `ctx.flags['skip-claude']`
|
|
505
|
+
// etc. was always undefined, so all four flags were silent no-ops. Same
|
|
506
|
+
// bug class as #2098A below, just never applied to these siblings.
|
|
507
|
+
const skipClaude = ctx.flags.skipClaude;
|
|
508
|
+
const onlyClaude = ctx.flags.onlyClaude;
|
|
501
509
|
// #2098A — the parser handles `--no-foo` by stripping the prefix and
|
|
502
510
|
// storing `flags.foo = false` (parser.ts:291-294), not by storing
|
|
503
511
|
// `flags['no-foo'] = true`. So `--no-global` lands as
|
|
@@ -505,8 +513,8 @@ const initClaudeAction = async (ctx) => {
|
|
|
505
513
|
// was always undefined and silently no-op'd — every user with the flag
|
|
506
514
|
// set still got `~/.claude/CLAUDE.md` modified. Read the real key.
|
|
507
515
|
const noGlobal = ctx.flags['no-global'] === true || ctx.flags['global'] === false;
|
|
508
|
-
const allAgents = ctx.flags
|
|
509
|
-
const cloudMcp = ctx.flags
|
|
516
|
+
const allAgents = ctx.flags.allAgents;
|
|
517
|
+
const cloudMcp = ctx.flags.cloudMcp;
|
|
510
518
|
const cwd = ctx.cwd;
|
|
511
519
|
// Check if already initialized
|
|
512
520
|
const initialized = isInitialized(cwd);
|
|
@@ -1377,26 +1377,36 @@ export const hooksPostTask = {
|
|
|
1377
1377
|
catch {
|
|
1378
1378
|
// Intelligence module not available — non-fatal
|
|
1379
1379
|
}
|
|
1380
|
-
// ADR-130 Phase 3:
|
|
1380
|
+
// ADR-130 Phase 3: "reinforced-by" edge on task success.
|
|
1381
1381
|
// Writes: context node → task pattern node (relation: "reinforced-by")
|
|
1382
|
+
//
|
|
1383
|
+
// #2961 — this used to be fire-and-forget (no `await` on the IIFE). That
|
|
1384
|
+
// was invisible from the long-running MCP server, where the process
|
|
1385
|
+
// stays alive long enough for the detached write to finish in the
|
|
1386
|
+
// background. But `hooks post-task` (CLI) is the exact same handler
|
|
1387
|
+
// invoked from a one-shot process that calls `process.exit(0)`
|
|
1388
|
+
// immediately after this action resolves (bin/cli.js, #1552) — the
|
|
1389
|
+
// still-pending dynamic `import(...)` + `insertGraphEdge()` call was
|
|
1390
|
+
// killed before its first tick, so the CLI form dropped this edge on
|
|
1391
|
+
// every single success, not intermittently. Await it — this is a
|
|
1392
|
+
// single fast DB write, not worth losing correctness on one call site
|
|
1393
|
+
// to save latency on the other.
|
|
1382
1394
|
if (success) {
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
catch { /* non-fatal */ }
|
|
1399
|
-
})().catch(() => { });
|
|
1395
|
+
try {
|
|
1396
|
+
const { insertGraphEdge } = await import('../memory/graph-edge-writer.js');
|
|
1397
|
+
const sessionCtxId = `task:${taskId}`;
|
|
1398
|
+
const patternId = `pattern:${taskId}`;
|
|
1399
|
+
await insertGraphEdge({
|
|
1400
|
+
sourceId: sessionCtxId,
|
|
1401
|
+
targetId: patternId,
|
|
1402
|
+
relation: 'reinforced-by',
|
|
1403
|
+
weight: quality,
|
|
1404
|
+
confidence: quality,
|
|
1405
|
+
lastReinforced: new Date().toISOString(),
|
|
1406
|
+
metadata: { success, agent, taskId },
|
|
1407
|
+
});
|
|
1408
|
+
}
|
|
1409
|
+
catch { /* non-fatal */ }
|
|
1400
1410
|
}
|
|
1401
1411
|
// Persist routing outcome for runtime learning (file-based, always reliable)
|
|
1402
1412
|
const taskText = params.task || '';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claude-flow/cli",
|
|
3
|
-
"version": "3.38.
|
|
3
|
+
"version": "3.38.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",
|