v3.30.1
ruvnet/ruflov3.30.1Jul 14, 2026by ruvnet
AI Summary
A patch release fixing a statusline generator drift issue where the generator was out of sync with the committed helper file.
Key Highlights
- Statusline generator now reads '.claude/helpers/statusline.cjs' as the single source of truth.
- Substitutes two known values ('maxAgents', 'bakedVersion') automatically.
- Fixes drift between generator and committed helper file.
- CI static-regression guards updated to prevent future sync drift.
- Fresh installs now receive the v3.29.0-era helper with full delegation support.
New Features
- Statusline generator delegation fix
- Automated helper synchronization
Full Release Notes
## What PATCH release closing #2679 — the statusline generator drift discovered during the v3.30.0 release flow. ## Fix \`generateStatuslineScript()\` in \`v3/@claude-flow/cli/src/init/statusline-generator.ts\` no longer inlines a 1000-line template string. It now READS \`.claude/helpers/statusline.cjs\` as its single source of truth and substitutes two known values (\`maxAgents\`, \`bakedVersion\`). Every future edit to the helper propagates to \`ruflo init\` output automatically — no manual sync required. ## Impact - **Fresh installs / re-inits**: get the current v3.29.0-era helper (whole-row-clickable OSC 8, \`(domain)\` suffix, ellipsis on truncation, bright-white bold command styling, 300s cache TTL, \`windowsHide\` on every subprocess spawn) instead of the pre-#2195 non-delegation shape that the generator had frozen at. - **Existing installs**: unchanged. The deployed helper is already correct; this fix only affects new \`ruflo init\` writes. ## CI Three static-regression guards updated for the read-and-substitute pattern: - \`.github/workflows/v3-ci.yml\` — statusline generator delegation smoke - \`scripts/audit-fix-invariants.mjs\` — #2196 delegation invariant + NEW #2679 sync invariant - \`scripts/smoke-statusline-generator-delegation.mjs\` — Layer 1 static contract Each now greps the HELPER for the delegation content (where it now lives) with a paired assertion that the generator still reads it. Drift on either side of the sync is caught. ## Related - PR [#2680](https://github.com/ruvnet/ruflo/pull/2680) — the fix - Issue [#2679](https://github.com/ruvnet/ruflo/issues/2679) — closed - v3.30.0 release (\`74bc81f8e\` / \`fea1d9e95\`) — where this drift was first surfaced ## Install \`\`\`bash npx ruflo@latest init # or npm install -g @claude-flow/cli@3.30.1 \`\`\`