Skip to content

Releases: rand/rlm-claude-code

v0.7.4

20 Feb 22:39

Choose a tag to compare

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

20 Feb 20:06

Choose a tag to compare

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_core builds that do not expose MemoryStore.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 deselected
  • make benchmark-bounded: 37 passed
  • uv run dp enforce pre-commit --policy dp-policy.json --json: ok=true
  • uv run dp review --json: ok=true
  • uv run dp verify --json: ok=true
  • uv run dp enforce pre-push --policy dp-policy.json --json: ok=true

v0.7.2: maturin 1.12 build fix + type stubs

19 Feb 20:10

Choose a tag to compare

Fixed

  • maturin 1.12 build compatibility: Created rlm_core/ Python stub package to satisfy python-source = "." config. Maturin 1.12 (PR #2986) changed missing module directory from warning to error, breaking wheel builds.

Added

  • PEP 561 py.typed marker for type checker discovery
  • Comprehensive .pyi type 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__.py with 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

19 Feb 19:54

Choose a tag to compare

Fixed

  • Hook dispatch silences stderr to prevent noisy output in Claude Code
  • complexity-check is now non-blocking with fail-open behavior
  • plugin.json version aligned with marketplace.json (was showing 0.6.1 in Claude Code UI)
  • vendor/loop submodule 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

03 Feb 02:54

Choose a tag to compare

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

  • feat: bundle rlm-core as required dependency by @rand in #10

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

02 Feb 20:26

Choose a tag to compare

Fixes

  • hook-dispatch.sh: Export CLAUDE_PLUGIN_ROOT env var so Go binaries can find plugin root (fixes "plugin root not found" error)

Removed

  • UserPromptSubmit prompt hook — caused Claude to block normal messages; RLM guidance now lives in CLAUDE.md
  • PostToolUse catch-all prompt hook — fired on every tool use adding cost/latency; redundant with PreToolUse complexity-check
  • PreCompact prompt 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

02 Feb 16:45
2d325a7

Choose a tag to compare

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 (typeedge_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=false to use Python fallback.
  • Existing V1 configs are automatically migrated to V2 on first run.
  • Run python3 ~/.claude/scripts/merge-plugin-hooks.py after updating to register new hooks.

What's Changed

  • feat: Go hook binaries, event coordination, and rlm-core default enablement by @rand in #9

New Contributors

  • @rand made their first contribution in #9

Full Changelog: v0.5.0...v0.6.0

v0.4.1 - Atomic Writes & Configurable rlm-core

22 Jan 12:51

Choose a tag to compare

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_core option in ~/.claude/rlm-config.json for 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-code

Then restart Claude Code.

v0.4.0 - rlm-core Integration

22 Jan 12:37

Choose a tag to compare

Features

  • rlm-core Integration: Integrated Rust library for 10-50x faster pattern classification
  • Feature Flag: Control with RLM_USE_CORE environment 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_tokens when partitioning small content into many chunks

Documentation

  • Updated README with rlm-core integration instructions
  • Added RLM_USE_CORE environment 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-core

As Claude Code Plugin

claude plugin install github:rand/rlm-claude-code@v0.4.0

v0.3.1 - Bug fixes and test improvements

16 Jan 13:44

Choose a tag to compare

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