Patch release. Three fixes from the issue backlog, each confirmed in source before any change and each with a regression test proven to fail without the fix.
A curate can no longer destroy a user's memory index (#3224)
AutoMemoryBridge.curateIndex() rebuilt MEMORY.md 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 the guard protected exactly one sync and then stopped applying. The reporter measured a hand-curated index of 75 lines and 49 links reduced to a 6-line stub.
A curate may now grow or reorder the index and never shrink it. When the generated view is smaller, the existing file is left untouched, the generated view is written beside it as MEMORY.generated.md, and the bridge emits index:preserved. The old failure was silent; a silent refusal would only be a quieter version of the same problem.
autoStart: false is honoured (#3278)
Two mismatches were stacked:
what init writes |
what the check read | |
|---|---|---|
| file | .claude/settings.json |
claude-flow.config.json |
| key | claudeFlow.daemon.autoStart |
daemon.autostart |
A different file and a different capital S, so the setting a fresh project ships was never consulted — under a comment reading "Opt-in only — prevents unintended token consumption (#1427, #1330)". Both files and both spellings are now read.
Reads disclose the store they did not search (#3228, in part)
3.41.1 shipped the sibling-store disclosure in memory list alone. retrieve, search and an empty list kept returning a clean negative while the rows sat in the file they do not read — on the reported Windows install, 31,673 rows answering found:false.
Still not fixed: the Windows 0xC0000409 abort on a ~4.4 GB allocation with the native bridge enabled. That is #2948 and this release does not touch it. On Windows the split is now visible, not healed.
Install
npx ruflo@3.41.2
Merge commit df87b0db338a.