v3.26.0 β ANV Phase 1 versioning, statusline/funnel verification, CI + security fixes
Highlights
- Agent-Native Versioning (ANV) β Phase 1.
ruflo version --explainnow reports an advisory
+ad.<n>.g<sha>.cat<generation>[.hal<tier>]suffix alongside the normal semver, backed by a new
catalog-manifest.jsonwith real, git-measured counts (currently 164 agent types, 387 MCP tools,
34 skills) β never fabricated numbers, and no benchmark tier claimed without a real signed GAIA/HAL
submission. Plainruflo --version/-Vand bareruflo versionare unaffected (still plain semver,
npm-range-safe build metadata).ruflo version --require-catalog-gte Ngives scripts a capability
gate. See the ANV proposal. - Statusline promo disclosure grace period shortened from 72h to 24h. The disclosure/opt-out text
(ending inΒ· manage: ruflo settings, enforced at the content-validation layer) still shows for the
full window before any promotional content is eligible β just a shorter window now. - Verified the funnel analytics pipeline:
promo_impression/promo_openevents are tracked with a
pseudonymous, 90-day-rotating ID and daily-bucket timestamps only β no hostname, username, email, or
path ever leaves the machine. Verified the sponsored-proxy feature remains a fully separate,
never-bundled opt-in (perconsent.ts's "four+ distinct decisions, never bundled" design). - Confirmed the existing critical-helper auto-refresh mechanism (
autoRefreshHelpersIfStale) correctly
propagates the updatedstatusline.cjsto already-initialized projects on their nextruflocommand
β no re-initrequired.
Fixes
- PR #2622 CI (7 failing checks) β an npm
overrides/direct-install conflict in a CI smoke step, 8
funnel/statusline env vars missing from the CLI-flag-precedence audit's escape-hatch list, a silently
renamed regression-guard variable, a stdout/stderr contract bug in the shared CLI output formatter
(warnings/info/debug/trace now correctly go to stderr, matchingprintError), and a help-text
ordering regression. - Security: fixed a confirmed exponential-backtracking ReDoS (measured: 2.8s at 36 pattern
repetitions) in the shared npx-hook flag-list regex; stopped inheriting a subprocess's raw stderr in
the helper/config signing scripts (clear-text-logging hardening); fixed anEOVERRIDEconflict where
@claude-flow/cli/package.jsondeclared bothoverrides.agentdbandoptionalDependencies.agentdb
for the same package (now uses npm's canonical$agentdbself-reference).
Packages published
@claude-flow/cli@3.26.0, claude-flow@3.26.0, ruflo@3.26.0 β latest/alpha/v3alpha dist-tags
all aligned.