Commit Graph
669 Commits
Author SHA1 Message Date
randRuFlo dffb5171e0 chore(release): 3.56.3 versions and changelog (memory 3.0.3, AgentDB alpha.20)
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-09 17:26:16 -04:00
randRuFlo 01fa240e7c wip(memory): agentdb alpha.20 floor + sql.js lock/concurrency guard
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-09 17:17:36 -04:00
randRuFlo 183d2d5140 chore(release): 3.56.2 versions and changelog
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-09 13:06:28 -04:00
randRuFlo 6ecabbbe42 chore(release): 3.56.1 versions and changelog
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-08 23:48:55 -04:00
randRuFlo 6991551f8a chore(release): 3.56.0 versions, leaf pins (memory 3.0.2, security 3.0.3), lockfiles, changelog
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-08 17:17:31 -04:00
ruv b02e2247dc chore(release): 3.55.0 versions, leaf pins, lockfiles, plugin bumps, changelog
Pins mcp 3.1.0, plugin-agent-federation 1.0.1, security 3.0.2, shared 3.0.2 and
memory 3.0.1 (all published and registry-verified) in root, cli, pnpm and npm locks.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-07 13:14:22 -04:00
ruv 48c7b483e2 release: 3.54.1
Bump @claude-flow/cli, claude-flow and ruflo to 3.54.1, re-sign the helpers
manifest and regenerate the linux/macos/windows witness manifests.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-07 03:02:29 -04:00
ruv bdd754ce0b chore: claude-flow umbrella range for @claude-flow/shared covers 3.0.1
The install-safety guard requires the umbrella's range to include the workspace
version. The cli exact pin stays at 3.0.0 until 3.0.1 is published.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-07 01:29:11 -04:00
ruv 613df52a12 release: 3.54.0
Bump @claude-flow/cli, claude-flow and ruflo to 3.54.0, re-sign the helpers
manifest and regenerate the linux/macos/windows witness manifests.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-06 23:03:01 -04:00
ruv 60fc49e4cc fix(deps): clear critical npm advisories (proxy-addr, tinypool)
proxy-addr 2.0.7 -> 2.0.8 (GHSA-jqcg-44mw-7w3h) via lock-only bump in root and v3 lockfiles.
tinypool pinned >=2.1.2 via root overrides (GHSA-5gmw-xhrv-c9v3, GHSA-85c8-ppgw-ccpr); dev-only (vitest 3 test runner).

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-06 03:02:41 -04:00
ruv 54f97b3223 release: 3.53.0
Bump @claude-flow/cli, claude-flow and ruflo to 3.53.0, re-sign the helpers
manifest and regenerate the linux/macos/windows witness manifests.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-06 02:32:00 -04:00
ruv 7c10c9e975 release: 3.52.1
Bump @claude-flow/cli, claude-flow and ruflo to 3.52.1, re-sign the helpers
manifest and regenerate the linux/macos/windows witness manifests.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-05 19:46:35 -04:00
ruv 0f32701510 release: 3.52.0
Bump @claude-flow/cli, claude-flow and ruflo to 3.52.0, re-sign the helpers
manifest and regenerate the linux/macos/windows witness manifests.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-05 10:03:25 -04:00
ruv ce7c13a65f release 3.51.1: bump train to 3.51.1
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-02 11:54:27 -04:00
ruv 00d13f551c release 3.51.0: bump train to 3.51.0
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-02 00:55:34 -04:00
ruv 519709a290 release 3.50.0: bump train to 3.50.0
Ships the Claude Code mods integration (ADR-404: ruflo mods CLI, doctor
component, init --mods, $.ruflo noun), the ruflo-swarm pane mod and the
ruflo-ruos plugin (ADR-405). No @claude-flow/* leaf source changed since
v3.49.0, so only the train moves.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-10-01 19:56:04 -04:00
ruv 35cf4a49ea release 3.49.0: bump train to 3.49.0, @claude-flow/security to 3.0.1
security 3.0.1 carries the #3568 policy-ledger truncation fix (bundled into
the train and published standalone). codex's security pin relaxes to ^3.0.0
so the workspace keeps linking the local security package; codex source is
unchanged.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-09-30 19:50:50 -04:00
ruv 2764e49173 release 3.48.0: stable internal leaves + guarded federation registration (3.47.0) on main
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-09-28 17:17:36 -04:00
ruv e69bc340cf feat(federation): add guarded public registration and release 3.47.0 2026-09-28 17:16:02 -04:00
ruv 643f415db3 chore(release): point consumers at the stable internal leaves
All 18 internal @claude-flow/* leaves are now published at stable versions
(3.0.0; cli-core 3.7.0; plugin-agent-federation and plugin-iot-cognitum 1.0.0).
This moves every consumer onto them:

- cli: exact pins to the stable leaves (deps + optionalDeps)
- root package.json and codex: same
- audit-leaf-package-publish: drop the shared waiver, now resolved
- v3/.npmrc: prefer-workspace-packages=true. Without it pnpm replaced
  link:../cli with registry cli@3.47.1 (released from a branch not on main)
  and pulled its alpha cli-core/neural/memory deps into the lockfile.
- both lockfiles regenerated; only @claude-flow entries change
- CLAUDE.md: leaves follow the stable policy (embeddings excepted), the
  bundled four are dual-distributed, files allowlist / no publishConfig.tag
  rule, and the lockfile no longer proves a leaf was published

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-09-28 17:13:43 -04:00
ruv 32c4570e36 chore(release): 3.46.1
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-09-26 18:48:57 -04:00
ruv fe022cce27 chore(release): 3.46.0
Pin the three standalone-published leaves exactly (memory alpha.26 in both
dependencies and optionalDependencies, neural alpha.10, cli-core alpha.6) and
hand-edit the lockfiles minimally: pnpm importer specifiers plus one new
memory registry snapshot, and the root package-lock cli-core/neural entries.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-09-26 11:40:47 -04:00
ruv d921b207e4 chore(release): 3.45.0
Co-Authored-By: RuFlo <ruv@ruv.net>
2026-09-24 18:22:22 -04:00
ruv 0a96fb8857 chore(release): 3.44.0
Minor: new opt-in router embedder (CLAUDE_FLOW_ROUTER_EMBEDDER=minilm),
router.js becomes a signed critical helper.

- ADR-389: router.js refreshed on upgrade (installs get the #3401 word-boundary fix)
- ADR-390: opt-in MiniLM embedder for hooks_route; default stays hash
- ADR-391: blind 197-prompt corpus + benchmark; first run promotes nothing
- typesafe-router test (e) fixed (was red on main since #3402)

Helpers manifest re-signed @ 3.44.0 — now 5 helpers (router.js added).
No non-bundled leaf changed.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-09-23 14:40:54 -04:00
ruv 025842bb0f chore(release): 3.43.0
Minor: new opt-in @ruvector/typesafe task router (CLAUDE_FLOW_ROUTER_TYPESAFE=1)
and `doctor --component typesafe`. Ships:

- #3399 @ruvector/router floor ^0.1.31 (HNSW recall@10 0.071 -> 1.000)
- #3406 opt-in typesafe router, removable, falls back to the existing router
- #3402 keyword routers match on word boundaries (#3401)
- #3403 hooks post-task reports observed learning counts (#3353)
- #3400 memory tools reject missing required query/key (#3374)
- #3407 embedder rescue reachable + no silent NULL embeddings (#3375, #3325)
- #3404 writeJsonAtomic retries transient Windows rename errors (#3398)
- #3405 graph-edge-writer releases its native WAL handle (#3397)
- capability brain classifies seraphina_/x_federation_ tools (release gate)

All changes are @claude-flow/cli source or the umbrella's own dependency
range; no non-bundled leaf (cli-core/neural/shared/memory) changed, so no
standalone publish is needed. Helpers manifest re-signed @ 3.43.0 (ADR-174).

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-09-23 11:00:55 -04:00
rUv b8ad7ddd2e chore(deps): raise @ruvector/router floor to ^0.1.31 (HNSW recall fix) (#3399)
@ruvector/router 0.1.30 builds its HNSW graph keeping only the nearest
candidates per node, so on clustered data no edges cross between clusters
and search returns mostly the most-recently-inserted region. 0.1.31
(ruvnet/RuVector#1005) switches to the diversity heuristic.

Measured in this repo's own install, 3,000 clustered 64-d vectors,
100 queries, recall@10 vs exact cosine:
  0.1.30 -> 0.071
  0.1.31 -> 1.000

Consumers: hooks_route's native semantic router (hooks-tools.ts
getSemanticRouter) and agentdb/agentic-flow, which dedupe to the root copy.
Their own ranges (^0.1.15 / ^0.1.25) already admit 0.1.31, so this raises
the floor and moves the lockfile; v3/pnpm-lock.yaml is left alone because
a transitive-only update there re-resolves unrelated packages.
2026-09-23 14:24:19 +00:00
ruvnetandClaude Opus 5 cf9aebf21e chore(release): 3.42.5 + @claude-flow/memory 3.0.0-alpha.25
Ships #3390 (#3327 Finding A). The fix spans two packages and only one of
them rides the release train, so memory is bumped and published alongside:

  - cli/src/memory/memory-bridge.ts      -> @claude-flow/cli 3.42.5 (train)
  - memory/src/controller-registry.ts    -> @claude-flow/memory 3.0.0-alpha.25

Without the memory publish the embedder half of the fix never reaches users
and reasoningBank stays inert, since @claude-flow/memory is NOT in
INTERNAL_RUNTIME_PACKAGES and resolves from the registry via ^3.0.0-alpha.23.

CLAUDE.md: correct the Publishing Rules claim that internal @claude-flow/*
components are all bundled. Only four are (security, codex, mcp,
plugin-agent-federation); cli-core, neural, shared and memory resolve from
the registry and need a standalone publish when their source changes. Adds a
semver-aware pre-tag drift check that fails loudly if it inspects zero leaves.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-21 14:52:57 -04:00
ruv e558f0c0fc chore(release): 3.42.0 -> 3.42.4 — smart search score semantics fix (#3327/#3340)
Ships PR #3340 (fix(memory): preserve retrieval relevance in smart search
results): memory_search({smart:true}) was returning the RRF fusion score in
the `similarity` field instead of the underlying retrieval relevance;
`similarity` now carries the raw retrieval score, and the fused SmartRetrieval
ranking score is exposed separately as `rankingScore`.

Note: 3.42.1-3.42.3 were published to npm without matching version-bump
commits on main (no `chore(release)` commit, gitHead unset in npm metadata).
Verified via `v3.42.0`/`v3.42.1`/`v3.42.3` git tags: all are ancestors of this
commit, so 3.42.4 is a strict superset of what was previously published.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-09-17 17:35:43 -04:00
ruv 2602b642d9 chore(release): 3.42.0 — dream-cycle backlog batch (14 PRs)
Merges the full dream-cycle evaluated-backlog batch: weighted swarm
consensus, HNSW product-quantization dispatch, ADR-377 caller-identity
verification, EWC confidence-gate fix, weighted-RRF memory fusion,
symmetric topology rebalancing, dead-code + stale-claim cleanup,
opt-in MCP governance policy enforcement, sliding-window rate limiting,
reward-aware learning consolidation, embedding near-duplicate detection,
lazy MMR tokenization, hive-mind Sybil-vote + join/leave authentication,
and a confidence/similarity conflation fix in pattern retrieval.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01RYP825phHMjPRmmjkcAWpq
2026-09-14 20:55:06 -04:00
rUv df87b0db33 chore(release): 3.41.2 — memory index protection, daemon consent, sibling disclosure (#3283)
#3224 — a curate may now grow or reorder MEMORY.md and never shrink it. The
bridge rebuilt the index from its own topic files and overwrote whatever was
there; the #1556 guard only skipped the write when nothing matched, but the
bridge writes the first topic file itself, so after the first insight a
hand-maintained index was replaced with a stub. A smaller generated view now goes
beside the file instead, and the bridge says it declined.

#3278 — autoStart:false is honoured. The disable check read
claude-flow.config.json daemon.autostart while init generates
.claude/settings.json claudeFlow.daemon.autoStart: a different file and a
different capital S, so the setting a fresh project ships was never consulted,
under a comment saying it exists to prevent unintended token consumption.

#3228 (half) — retrieve, search and an empty list now disclose the sibling
AgentDB store. 3.41.1 shipped that disclosure in `memory list` alone, so the
other three kept returning a confident negative while the rows sat in the file
they do not read.


Claude-Session: https://claude.ai/code/session_013u4pmL9ZUAXb6usVQgNo67
2026-09-10 19:45:24 +00:00
rUv cda8b04f6a chore(release): 3.41.1 — memory path identity and Seraphina truncation (#3273)
Two fixes, both found by someone hitting them rather than by us.

#3196: an explicit database path now selects that database. The bridge cached one
registry globally, so the first caller decided the file for the whole process and
every later caller's --path or CLAUDE_FLOW_DB_PATH was accepted and then silently
ignored. A CLI write and an MCP write landed in two files, both reporting success,
and neither interface could see the other's rows. The 'memory list' command also
stopped
printing a confident total for one store while rows sat unread in its sibling —
it now names the store it did not read. Reported downstream by pacphi/agentic-kit#213.

#3267: Seraphina no longer passes a truncated reasoning dump off as coordination
guidance. The routed model spent its whole token budget reasoning and never
emitted its JSON, and the empty result read as "the swarm needs nothing" — the
one conclusion a coordinator must never reach by accident.


Claude-Session: https://claude.ai/code/session_013u4pmL9ZUAXb6usVQgNo67
2026-09-10 14:39:52 +00:00
ruv cb10bf617e chore(release): 3.41.0 — open swarm federation CLI/MCP, channels, Seraphina
@claude-flow/cli, claude-flow, ruflo -> 3.41.0 (lockstep).

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_015y2UjPSd3VX1CYnPstZJ5D
2026-09-10 07:59:09 -04:00
ruv 2629de628b chore(release): 3.39.3 -> 3.40.0
Ship cross-host federation (agentbbs) + claims. New MCP tools:
federation_bbs_{identity,peer_add,peers,serve,register,publish,sync,watch}.
Signed Ed25519 envelopes, registry-anchored pinning, HTTP pull transport.
Includes the memory-search recall fix (#3252).

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_013u4pmL9ZUAXb6usVQgNo67
2026-09-09 19:15:49 -04:00
ruvnet e855ae2e4e chore(release): 3.39.2 -> 3.39.3
Ships #3250: the agentbbs MCP tools gated on `await import('agentbbs')`, but the
published package is a CLI-only launcher with no importable entry point, so all
four federation_bbs_* tools reported degraded regardless of install state.
Replaced with a subprocess probe.

Includes the follow-up hardening: the probe's shell is now gated to win32
instead of always on. The probed binary comes from AGENTBBS_BIN, and under a
shell that argument is command-interpreted, so a crafted value executed a
trailing command (verified locally). POSIX now spawns without a shell.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_013u4pmL9ZUAXb6usVQgNo67
2026-09-09 16:26:04 -04:00
rUv 498a238799 fix(security): make the fast-uri CVE fix actually reach shipped packages (#3222) — 3.39.2 (#3247)
* fix(security): make the fast-uri CVE fix actually reach shipped packages (#3222)

3.39.1 bumped fast-uri only in the ROOT package.json. Post-publish validation
caught that this never reached users: a fresh `npm install ruflo@3.39.1`
still resolved fast-uri@3.1.5, squarely inside the advisory range
(GHSA-5jgf-p345-68v8, high, CVSS 7.5, >=3.1.3 <3.1.6).

Root cause: v3/@claude-flow/cli/package.json carried its own hard pin
"fast-uri": "3.1.5" in dependencies, and that is the package that actually
ships. The root bump did not override it -- the #2112 lesson recorded in
CLAUDE.md, that root overrides do NOT propagate to the published ruflo
wrapper, applies to the CLI package too.

- v3/@claude-flow/cli: fast-uri 3.1.5 -> ^3.1.6 (the shipping dependency)
- ruflo: add "fast-uri": ">=3.1.6" override so the wrapper cannot regress
  independently of the CLI

Verified by fresh-installing the published tarball rather than trusting the
lockfile: that is what surfaced the gap in the first place.

Refs #3222, #2112

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01JJnDvpYYk2rTvjkudQUoCk

* fix(ci): refresh v3 pnpm lockfile for the fast-uri bump

The 3.39.2 fast-uri change touched v3/@claude-flow/cli/package.json but only
the npm lockfile was regenerated. v3/ is a separate pnpm workspace and CI runs
pnpm install --frozen-lockfile with working-directory: v3, which rejected the
mismatch (ERR_PNPM_OUTDATED_LOCKFILE) and cascaded into 34 failing checks --
every one an install failure, not a real regression.

Diff is 6 lines, fast-uri only: specifier 3.1.5 -> ^3.1.6, resolved 3.1.7.
Verified pnpm install --frozen-lockfile now exits 0.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01JJnDvpYYk2rTvjkudQUoCk
2026-09-09 13:29:58 +00:00
rUv d55b1bfeac fix(memory): stop reporting a gated native bridge as the active backend (#3228) + fast-uri CVE (#3245)
* fix(memory): stop reporting a gated native bridge as the active backend (#3228)

On Windows the #3024 kill-switch makes getRegistry() return null, so every
memory read/write silently falls back to the sql.js store (memory.db) instead
of the AgentDB corpus (agentdb-memory.db) the bridge would have opened. The
reporter measured the consequence: a canary store/retrieve round-trip SUCCEEDS
because both halves use the same unintended file, while an existing live-store
key returns found:false against 31,673 real rows.

The status surface hid the substitution. getHNSWStatus() gated its bridge
branch on whether the bridge MODULE was loaded -- which it is, even when the
registry is gated off -- so describeBackend() printed "sqlite (bridge,
brute-force cosine)" for a store the bridge never touched.

Gate on whether the bridge is permitted to be the active path rather than on
whether the module resolved. shouldDisableNativeBridge() is sync and a pure
function of platform + env, so it is a faithful discriminator and needs no
warm registry. describeBackend() now names the gate and its reason, so an
upgrade that changes which file receives writes says so.

This does not fix the opt-in allocation abort (#2948) or reroute the fallback
to the AgentDB corpus; both need Windows validation. It makes the silent case
loud, which is what the report asks for first.

Also bumps fast-uri 3.1.5 -> ^3.1.6 (resolves 3.1.7), clearing
GHSA-5jgf-p345-68v8 (high, host confusion via skipped IDN canonicalization)
and the ajv high that inherited it. Same change as #3222 by @aeonframework,
applied here because CI was never authorized to run on that PR.

Refs #3228, #3222, #2948, #3024

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01JJnDvpYYk2rTvjkudQUoCk

* chore(release): 3.39.0 -> 3.39.1

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01JJnDvpYYk2rTvjkudQUoCk
2026-09-09 12:55:02 +00:00
ruv e341ec8c4a chore(release): 3.38.23 -> 3.39.0
Ships the ADR-322C receipt number-domain fix (#3229 / #3235).

MINOR rather than patch: receipt output changes shape (fractional
candidatePolicy values become scale-12 decimal strings) and
policySchemaVersion moves v1 -> v2, so pre-fix receipts refuse promotion
with 'policy schema changed'. Not MAJOR because no CLI surface or MCP tool
signature changed.

Existing signed receipts stay valid as history and are deliberately NOT
migrated — re-encoding changes the content, hence the ID, hence invalidates
the signature. Re-establish a champion through the explicit reset path,
which already requires confirmation and a recorded reason.

Validated end to end against the built dist before publishing: a receipt
carrying the exact candidatePolicy from #3229 encodes to
{"alpha":"0.3","subjectWeight":1,"mmrLambda":"0.5","bodyWeight":"1.5",
"typePenaltyFactor":"0.5"}, contains zero fractional JSON numbers anywhere
in the payload, and verifies VALID.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01J2s8oQsAZjJtJ6inoYRFPj
2026-09-08 12:51:23 -04:00
ruvnet 384b923986 chore(release): 3.38.21 -> 3.38.23
Patch release covering the six commits landed since 3.38.21:
- #3221 gate EnhancedModelRouter's forwarded modelId on tier match
- #3169 wire embedding-cosine into SmartRetrieval's MMR step
- #3184 wire real cold-start measurement, drop the fabricated V2-vs-V3 benchmark
- #3177 bound two ReDoS patterns, stateless PII regexes, O(P) confidence pass
- #3204 fix two stale main-tree Test Suite failures
- #3203 add v3/@claude-flow/mcp to the root npm workspaces

3.38.22 is intentionally skipped: @claude-flow/cli's publish for that version
stuck in npm's "staged" state (published umbrellas, cli 404) and the registry
refused to republish over it even after unpublish, so all three packages moved
to .23 together to restore version lockstep.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01Ff2xRKvYrqXJhefvcapfE1
2026-09-07 13:41:18 -04:00
rUv efadf92b97 fix(ci): add v3/@claude-flow/mcp to the root npm workspaces so npm ci resolves the unpublished alpha.10 pin (#3203)
Root package.json and v3/@claude-flow/cli/package.json pin
@claude-flow/mcp@3.0.0-alpha.10 (since 16b0dc4d5, release 3.38.17), but
the registry only has 3.0.0-alpha.1/7/8/9, and v3/@claude-flow/mcp was
the one bundled package not listed in the root workspaces (codex,
plugin-agent-federation and security are). Root `npm ci` therefore hit
the registry and failed with ETARGET on main and on every PR since
2026-08-22, before any test ran.

Listing the package as a workspace member makes npm resolve it locally
(lockfile entry: `"node_modules/@claude-flow/mcp": {"resolved":
"v3/@claude-flow/mcp", "link": true}`), matching how the other three
bundled packages already resolve. No version change; the pin stays
alpha.10 and the tarballs still bundle it.

Found by the 2026-09-05 PR-review mission (agent pr-review-ruflo):
verified in main's own Test Suite job and in 3 red jobs on #3177.


Claude-Session: https://claude.ai/code/session_019xHM4rAH4aaShb4DTr1n6s
2026-09-05 10:26:44 -04:00
ruv db4991967c chore(release): 3.38.20 -> 3.38.21
Publishes the #3155 fix (fix(memory): stop seeding the bridge's
ControllerRegistry with the sql.js dbPath, PR #3156) and the CI-fixing
PR #3059 (agentic-flow-agent duration-assertion flake) to npm.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_011N1hncQ1p4pVt15q2VqaQD
2026-09-02 09:40:25 -04:00
ruv e21aa352fd chore(release): 3.38.19 -> 3.38.20
Publishes PR #3092 (fix(statusline): stop pinning intelligence to a
hardcoded 0%).

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01BGiC4SoXiGcUHxs4TsFCeh
2026-08-24 15:45:21 -04:00
ruv 3c99b1c84a fix: repin root claude-flow package.json's @claude-flow/mcp (hygiene)
Same defect as v3/@claude-flow/cli's package.json, already fixed in
68a9c9f6a: pinned to an unpublished 3.0.0-alpha.10 instead of the real
published ^3.0.0-alpha.9. Harmless in practice (bundled via
bundleDependencies + workspace link, verified npm install works either
way) but wrong to leave uncorrected. No republish needed for this alone.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_018ZkgSrVRWNMcXmaFiMZ7Z8
2026-08-22 12:40:28 -04:00
ruv 68a9c9f6a4 chore(release): 3.38.18 -> 3.38.19 (supersedes broken 3.38.17/3.38.18)
A subagent I spawned earlier (intended only to relay a status message)
went out of scope and independently ran its own full fix/verify/publish
cycle in parallel with mine on this same checkout, racing my edits. Between
its publish and a set of stale-cached `claude-flow daemon` background
processes self-healing package.json mid-write (#3005), @claude-flow/cli
was published twice in a row (3.38.17, 3.38.18) with a broken
`@claude-flow/mcp` dependency pin, and 3.38.18 additionally shipped
entirely missing the `@claude-flow/memory` dependency. claude-flow and
ruflo were published at 3.38.18 too, inheriting the same defect.

3.38.19 is the verified-correct cut: @claude-flow/mcp repinned to
^3.0.0-alpha.9 (published, has the #2990 fixes), @claude-flow/memory
present at ^3.0.0-alpha.23 (has the #2977 fix). Deprecating 3.38.17/3.38.18
on npm as a follow-up; this commit does not touch the doc/metadata files
that raced independently of the version bump.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_018ZkgSrVRWNMcXmaFiMZ7Z8
2026-08-22 12:35:58 -04:00
ruv 127a6546c4 chore(release): 3.38.17 -> 3.38.18, @claude-flow/memory 3.0.0-alpha.22 -> alpha.23
3.38.17 was published by a concurrent session mid-race with a stale
package.json (the @claude-flow/mcp pin had been reverted to the broken
3.0.0-alpha.10 by a background helper-refresh process just before publish;
see #3005). npm forbids republishing over an existing version, so cutting
3.38.18 with the verified-correct pin instead of trying to fix 3.38.17.

Also discovered @claude-flow/memory is NOT in @claude-flow/cli's
bundleDependencies (unlike @claude-flow/mcp/codex/security/plugin-agent-federation)
-- it's resolved from the registry via a normal ^3.0.0-alpha.22 semver range,
and that exact version is what's currently published, without the #2977 fix
from 8a8500194. Bumping @claude-flow/memory to 3.0.0-alpha.23 and re-pinning
@claude-flow/cli to ^3.0.0-alpha.23 so the fix actually reaches users --
otherwise 3.38.18 would ship pointing at an unfixed memory dependency.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_018ZkgSrVRWNMcXmaFiMZ7Z8
2026-08-22 12:27:01 -04:00
ruv 16b0dc4d5b chore(release): 3.38.16 → 3.38.17
Fixes #2990's root cause at the publish layer: v3/@claude-flow/cli and the
claude-flow umbrella both pinned @claude-flow/mcp to 3.0.0-alpha.10, a
version that was never published (npm registry tops out at alpha.9). Since
@claude-flow/mcp is bundled (bundleDependencies) via a pnpm workspace link,
this didn't affect the monorepo build, but it broke plain `npm install`
against the published packages and left package.json/pnpm-lock.yaml
out of sync with what's actually resolvable. Repinned to ^3.0.0-alpha.9
(the real latest, which already carries the protocolVersion-string fix)
and regenerated v3/pnpm-lock.yaml accordingly.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_018ZkgSrVRWNMcXmaFiMZ7Z8
2026-08-22 12:18:30 -04:00
rUv 5234333c34 chore(release): 3.38.15 → 3.38.16 (#3081)
Cuts a release train off main after the 3 dream cycles landed unversioned:
- #3062 dream(swarm): bound MessageBus retry attempts, fix unreachable
        message.failed (closes #3061)
- #3057 dream(memory): hybridSearch controller reachable via explicit
        opt-in — was silently null-returning despite config flag
        (closes #3056)
- #3049 dream(intelligence): discounted Thompson sampling for
        model-router bandit — opt-in prior decay recovers faster after
        workload shift (closes #3048)

No code changes in this commit — just the version bump across all three
publishable package.jsons.


Claude-Session: https://claude.ai/code/session_0118jMsYhwHD5dx2vStENsEB
2026-08-21 11:22:12 -04:00
rUv 87bacd5582 chore(release): 3.38.14 → 3.38.15 (#3080)
Cuts a release train off main after the following PRs landed unversioned:
- #3060 fix(cli): honor MCP tool selection when listing (closes #3055)
- #3076 fix: resolve Claude Code launches on Windows (closes #3071)
- #3077 fix(hooks): persist real session-end state (closes #3063)
- #3044 dream(security): #3043 advisory scanner for untrusted settings.json
        hooks/allow-rules — CVE-2025-59536-class defense-in-depth,
        advisory-only (non-blocking), hardened against 6 concrete critic
        bypasses.

No code changes in this commit — just the version bump across all three
publishable package.jsons.


Claude-Session: https://claude.ai/code/session_0118jMsYhwHD5dx2vStENsEB
2026-08-21 10:40:29 -04:00
rUv 703e7741d7 fix(memory): #3051 memory_store tags lost via write-through cache (3.38.14) (#3079)
Root cause: bridgeStoreEntry's post-write cache set stored only a partial
entry shape — { id, key, namespace, content, embedding } — with no `tags`,
no timestamps, no metadata, no access_count. The DB row itself had the
tags JSON-serialized correctly. But any subsequent bridgeGetEntry hit the
cache first and returned `tags: cached.tags || []` = `[]`, so
`memory_store({ tags })` → `memory_retrieve()` looked like it silently
dropped tags.

Fix: replace the partial write-through with cache invalidation. The next
read then re-fetches the row via the DB reader (which correctly parses
the tags JSON column) and repopulates the cache from the full shape.
Cleaner than expanding the write-through payload — future entry-shape
fields don't need to remember to update the cache-write signature.

Regression test verifies: store {tags:[a,b,c]} → get returns {tags:[a,b,c]}.
Proven to catch the bug: pre-fix the test fails (tags: [] returned);
post-fix it passes.

The same defect would have caused reads to see access_count stuck at 0
and drifted createdAt/updatedAt timestamps from the moment the cache
was first populated until eviction; cache invalidation fixes those too.

Release
- Bumps @claude-flow/cli, claude-flow, ruflo: 3.38.13 → 3.38.14 (PATCH).


Claude-Session: https://claude.ai/code/session_0118jMsYhwHD5dx2vStENsEB
2026-08-21 10:30:08 -04:00
rUv 0f3c45101b fix: address #3045 #3064 #3065 + new ruflo-deepseek-harness plugin (3.38.13) (#3078)
Bug fixes
- #3045 statusline.cjs: getGitInfo() runs the 5-command git chain per render;
  on large repos with concurrent Claude Code sessions this queued subprocesses
  faster than they finished (reporter observed hundreds of orphan children +
  load-avg in the hundreds). Added a per-cwd tmp file cache with 5s TTL —
  dirty status still feels live, pileup is bounded.

- #3064 hooks post-task: the narrow ad-hoc regex /^[a-zA-Z0-9_-]+$/ silently
  dropped every colon-namespaced plugin agent (ruflo-core:reviewer,
  feature-dev:code-explorer, ...) — i.e. every Claude Code plugin agent. The
  canonical validateIdentifier() upstream already allows ':' and '.', so the
  redundant regex is removed. Regression test locks in 4 agent-shape cases,
  proven to catch the bug: 2 pass / 2 fail on revert, 4 pass with fix.

- #3065 harness-gepa SKILL.md: unquoted colon in `description` broke YAML
  parsing in `npx skills add`. Quoted the description; rephrased the bare
  "(default:" to avoid the leading colon.

New plugin: ruflo-deepseek-harness
- plugins/ruflo-deepseek-harness/: sibling to ruflo-metaharness (ADR-150
  shape). Two skills: `deepseek-chat` (non-reasoning) and `deepseek-reason`
  (surfaces reasoning_content separately). Reads DEEPSEEK_API_KEY from env;
  degrades gracefully (exit 0 with `{status: 'degraded', reason, hint}`)
  when the key is missing or the API is unreachable. `--alert-on-error`
  flag opts into hard exit 1 for CI gates. Smoke-tested locally.

Release
- Bump @claude-flow/cli, claude-flow, ruflo: 3.38.12 → 3.38.13 (PATCH:
  bug fixes; the new plugin is scaffolding under plugins/ and not part of
  the npm-published CLI packages).

Not fixed
- #3051 memory_store tags: current source's memory_store handler passes
  tags straight through to storeEntry; a maintainer already verified live
  round-trip works on fa13ee4ad. Reporter has not yet supplied the
  ruflo/@claude-flow/cli version that hosted the affected MCP server,
  so the affected release path is unknown. Left as-is pending that reply.


Claude-Session: https://claude.ai/code/session_0118jMsYhwHD5dx2vStENsEB
2026-08-21 10:10:13 -04:00
ruv 13cbd697db fix(release): enforce CI and idle assignment safety 2026-08-15 11:14:06 -04:00