v3.32.20 β Inter-agent message compressor, IB+VQ MVP (#2727 dream β bundle complete)
Fifth of the five dream-cycle backlog items β the last one I said was "not a bounded MVP" turns out to be one after all if you deliver the paper's SPIRIT rather than a trained VQ codec.
Added
ruflo swarm compress-message β deterministic message compressor:
- Extract must-preserve spans (code fences, inline code, URLs, file paths)
- Score sentences by TF-IDF-ish keyword density (mode: keyword/sentence/hybrid)
- Force-keep sentences carrying preserved spans (they're load-bearing)
- Fill remaining budget with top-scored sentences
- Reassemble in ORIGINAL order + restore spans
Usage:
ruflo swarm compress-message -m "β¦" --budget-tokens 100
ruflo swarm compress-message --message-file ./msg.md -b 300 --format json
Advisory only in v1 β no auto-wire into SendMessage / hooks. v2 will land a real VQ codec once the training pipeline exists.
Verification
- Regression tests: 9/9 pass (all preserve invariants + budget reduction + order preservation)
- E2E: 106-token message with code + URL + file path β 57 tokens (53.1% ratio); all 3 spans intact.
Session tally β 5 dream-cycle items shipped
| # | Item | Release |
|---|---|---|
| #2783 | Composition Inspector | v3.32.15 |
| #2783 | ChannelGuard | v3.32.16 |
| #2752 | PlanFlip + MemPoison | v3.32.17 |
| #2760 | SCM classifier | v3.32.18 |
| #2763 | OAS operator selector | v3.32.19 |
| #2727 | Message compressor | v3.32.20 |
Upgrade
npx ruflo@latest --version # β 3.32.20Refs: dream-cycle #2727 (2026-07-19).