Releases: rand/rlm-claude-code
v0.7.4
Full Changelog: v0.7.3...v0.7.4
Full Changelog: v0.7.3...v0.7.4
Full Changelog: v0.7.3...v0.7.4
Full Changelog: v0.7.3...v0.7.4
v0.7.3
Added
- Repository-level quality gate targets in
Makefile:make check,make check-python,make check-go,make benchmark,make benchmark-bounded - Bounded benchmark execution mode for constrained environments
- Integration coverage for complexity-check binary contract path
Changed
- Rich spinner progress emission with throttling in
RLMConsole.emit_progress() - Auto-activation conservative budget guard for micro-mode fallback
- Expanded explicit trace tagging/coverage for prioritized SPEC-13/14/16/17 gaps
Fixed
- Memory store compatibility for
rlm_corebuilds that do not exposeMemoryStore.update_fields() - Field updates now use a validated SQLite compatibility path when needed
- Compatibility mode now uses SQLite-backed reads/queries/search for cross-session consistency
- Compatibility updates checkpoint WAL and use thread-safe connection handling for parallel session flows
Verification
make check: 3281 passed, 3 deselectedmake benchmark-bounded: 37 passeduv run dp enforce pre-commit --policy dp-policy.json --json: ok=trueuv run dp review --json: ok=trueuv run dp verify --json: ok=trueuv run dp enforce pre-push --policy dp-policy.json --json: ok=true
v0.7.2: maturin 1.12 build fix + type stubs
Fixed
- maturin 1.12 build compatibility: Created
rlm_core/Python stub package to satisfypython-source = "."config. Maturin 1.12 (PR #2986) changed missing module directory from warning to error, breaking wheel builds.
Added
- PEP 561
py.typedmarker for type checker discovery - Comprehensive
.pyitype stubs for all 50+ PyO3-exported types:_context.pyi: Message, Role, SessionContext, ToolOutput_memory.pyi: Node, NodeType, Tier, HyperEdge, MemoryStore, MemoryStats_llm.pyi: Provider, ModelSpec, ChatMessage, TokenUsage, CompletionRequest/Response, SmartRouter, CostTracker_trajectory.pyi: TrajectoryEvent, TrajectoryEventType_complexity.pyi: ActivationDecision, PatternClassifier_epistemic.pyi: Claim, Probability, BudgetResult, VerificationConfig/Stats, KL, ClaimExtractor
__init__.pywith graceful ImportError and full re-exports from compiled extension
Full Changelog: v0.7.1...v0.7.2
Full Changelog: v0.7.1...v0.7.2
Full Changelog: v0.7.1...v0.7.2
v0.7.1
Fixed
- Hook dispatch silences stderr to prevent noisy output in Claude Code
complexity-checkis now non-blocking with fail-open behaviorplugin.jsonversion aligned withmarketplace.json(was showing 0.6.1 in Claude Code UI)vendor/loopsubmodule updated to valid remote commit (fixes CI build)
Full Changelog: v0.7.0...v0.7.1
Full Changelog: v0.7.0...v0.7.1
v0.7.0 — Bundle rlm-core
What's Changed
- rlm-core is now a required bundled dependency (no more optional/fallback)
- Removed USE_RLM_CORE/RLM_USE_CORE feature flags
- Fixed 46 test failures from Rust API migration
- Fixed SQLite WAL corruption issue with multiple connections
- Build system uses maturin for PyO3 wheels
- Git submodule at vendor/loop for rlm-core source
What's Changed
Full Changelog: v0.6.1...v0.7.0
What's Changed
- feat: bundle rlm-core as required dependency by @rand in #10
- fix: install openssl-devel in manylinux container for CI builds by @rand in #11
Full Changelog: v0.6.1...v0.7.0
What's Changed
- feat: bundle rlm-core as required dependency by @rand in #10
- fix: install openssl-devel in manylinux container for CI builds by @rand in #11
Full Changelog: v0.6.1...v0.7.0
What's Changed
- feat: bundle rlm-core as required dependency by @rand in #10
- fix: install openssl-devel in manylinux container for CI builds by @rand in #11
Full Changelog: v0.6.1...v0.7.0
What's Changed
- feat: bundle rlm-core as required dependency by @rand in #10
- fix: install openssl-devel in manylinux container for CI builds by @rand in #11
Full Changelog: v0.6.1...v0.7.0
What's Changed
- feat: bundle rlm-core as required dependency by @rand in #10
- fix: install openssl-devel in manylinux container for CI builds by @rand in #11
Full Changelog: v0.6.1...v0.7.0
What's Changed
- feat: bundle rlm-core as required dependency by @rand in #10
- fix: install openssl-devel in manylinux container for CI builds by @rand in #11
Full Changelog: v0.6.1...v0.7.0
What's Changed
- feat: bundle rlm-core as required dependency by @rand in #10
- fix: install openssl-devel in manylinux container for CI builds by @rand in #11
Full Changelog: v0.6.1...v0.7.0
What's Changed
- feat: bundle rlm-core as required dependency by @rand in #10
- fix: install openssl-devel in manylinux container for CI builds by @rand in #11
Full Changelog: v0.6.1...v0.7.0
What's Changed
- feat: bundle rlm-core as required dependency by @rand in #10
- fix: install openssl-devel in manylinux container for CI builds by @rand in #11
Full Changelog: v0.6.1...v0.7.0
v0.6.1
Fixes
- hook-dispatch.sh: Export
CLAUDE_PLUGIN_ROOTenv var so Go binaries can find plugin root (fixes "plugin root not found" error)
Removed
UserPromptSubmitprompt hook — caused Claude to block normal messages; RLM guidance now lives in CLAUDE.mdPostToolUsecatch-all prompt hook — fired on every tool use adding cost/latency; redundant with PreToolUse complexity-checkPreCompactprompt hook — low value; trajectory-save on Stop handles persistence
Changed
- All hooks are now command-type only (no prompt hooks remain) — eliminates invisible gating behavior
- Hook architecture: command hooks provide dynamic state data, CLAUDE.md provides static workflow instructions
v0.6.0 — Go Hook Binaries & rlm-core Default Enablement
Highlights
- Go hook binaries replace Python scripts (~5ms vs ~500ms startup)
- rlm-core enabled by default — Rust-based pattern classification via PyO3
- Cross-plugin event system for DP↔RLM coordination
What's New
Go Hook Binaries
Three compiled Go binaries (session-init, complexity-check, trajectory-save) replace the Python hook scripts, reducing hook startup latency by ~100x. Legacy Python scripts remain available via RLM_USE_LEGACY_HOOKS=1.
rlm-core Default Enablement
USE_RLM_CORE now defaults to true. The Rust backend provides 10-50x faster pattern classification. PyO3 bindings now support metadata, provenance, and embedding parameters. Python SQLite remains the primary store for full API compatibility (FTS5, confidence logging, evolution log). Set RLM_USE_CORE=false to opt out.
Cross-Plugin Events
New event system (~/.claude/events/) enables coordination between plugins. JSON Schema definitions for all event types. Python helpers for emit/consume in src/events/.
Other Changes
- Config migration (V1→V2) with backwards compatibility
- Complexity check responds to all DP phases
- Fixed hyperedge queries using wrong column name (
type→edge_type) - GitHub Actions CI for cross-compilation (5 platforms)
Upgrade Notes
- rlm-core is now enabled by default. Install it for best performance, or set
RLM_USE_CORE=falseto use Python fallback. - Existing V1 configs are automatically migrated to V2 on first run.
- Run
python3 ~/.claude/scripts/merge-plugin-hooks.pyafter updating to register new hooks.
What's Changed
New Contributors
Full Changelog: v0.5.0...v0.6.0
v0.4.1 - Atomic Writes & Configurable rlm-core
Bug Fixes
- Atomic State Writes: Fixed race condition in state persistence that caused JSON corruption (
}}at end of file) when multiple hook processes wrote concurrently. Now uses write-to-temp-then-rename pattern which is atomic on POSIX systems.
Features
- Configurable rlm-core Default: Add
use_rlm_coreoption in~/.claude/rlm-config.jsonfor persistent rlm-core preference without needing environment variables.
{
"use_rlm_core": true,
...
}Priority order: RLM_USE_CORE env var > config file > default (false)
Documentation
- Document both ways to enable rlm-core (environment variable and config file)
- Add config key reference table to README
Upgrade
claude plugin update rlm-claude-code@rlm-claude-codeThen restart Claude Code.
v0.4.0 - rlm-core Integration
Features
- rlm-core Integration: Integrated Rust library for 10-50x faster pattern classification
- Feature Flag: Control with
RLM_USE_COREenvironment variable - Graceful Fallback: Falls back to Python implementation when rlm-core unavailable
- Performance Delegation: Memory store, trajectory events, and smart routing now leverage Rust when available
Bug Fixes
- Fixed content loss in
partition_content_by_tokenswhen partitioning small content into many chunks
Documentation
- Updated README with rlm-core integration instructions
- Added
RLM_USE_COREenvironment variable documentation - Clarified optional vs required dependencies
Installation
# Basic install (Python-only, works without rlm-core)
git clone https://github.com/rand/rlm-claude-code.git
cd rlm-claude-code
uv sync --all-extras
# Optional: Enable Rust acceleration
export RLM_USE_CORE=true
# Requires rlm-core Python bindings built from ~/src/loop/rlm-coreAs Claude Code Plugin
claude plugin install github:rand/rlm-claude-code@v0.4.0v0.3.1 - Bug fixes and test improvements
What's Changed
Bug Fixes
- Fix complexity classifier patterns for "explain how X works" queries
- Fix complexity classifier patterns for "data flow/path/pipeline" queries
Testing
- Add 36 RestrictedPython integration tests validating
_getitem_and_write_guards - Add 10 parametrized REPL helper tests verifying both restricted and unrestricted modes
- Total test count now 3238 tests
Documentation
- Update test counts from 1000+ to 3000+ across documentation
Full Changelog: v0.3.0...v0.3.1