This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+14 more
Summary
AI summaryEvent loop unblocking fixes 'not responding' errors on Linux.
Full changelog
Highlights
- Event loop unblocking:
embed_text()wrapped inasyncio.to_thread()— fixes the root cause of "not responding" errors on Linux - Performance caps:
_search_allcapped at 1,000/collection, BM25 index rebuild at 2,000 docs — prevents OOM on memory-constrained systems - Sidecar-only scoring on OpenCode:
score_memoriestool hidden from MCP, no main LLM fallback — eliminates double-scoring - Timezone fix:
_humanize_age()now shows correct memory ages on non-UTC systems
What's Changed
Critical
embed_text()/embed_texts()useasyncio.to_thread()for CPU-bound encode
High
- MCP server restart timeout bumped 3s → 15s with return value check
_search_allfetch limit capped at 1,000 per collection- Graceful
sentence-transformersimport failure with clear error message - Server
lifespan()error handling with "what failed + how to fix" guidance - BM25 index rebuild capped at 2,000 documents
Medium
XDG_DATA_HOMErespected on Linux in all 3 path resolution sites- Atomic
_completion_state.jsonwrites viaos.replace() - Removed
ChromaDBAdapter.__del__(), explicit cleanup on lifespan shutdown - User-friendly "Roampal: restarting server..." messages (replaces alarming stderr)
- Fixed
_humanize_age()timezone offset — memories showed wrong ages on non-UTC systems
Low
- Removed dead cross-encoder reranking code (~80 lines)
- Normalized macOS detection to
sys.platform - OpenCode: sidecar-only scoring architecture —
score_memorieshidden from MCP tool list
Verification
526 tests passing. 0 failures.
Full release notes: dev/docs/releases/v0.4.1/RELEASE_NOTES.md
Install / Upgrade
pip install --upgrade roampal
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About roampal-ai/roampal-core
Outcome-based persistent memory for AI coding tools. Memories that help get promoted, memories that mislead get demoted. Works with Claude Code and OpenCode via hooks + MCP.
Related context
Beta — feedback welcome: [email protected]