Skip to content

v0.6.0

Latest

Choose a tag to compare

@WendellXY WendellXY released this 07 Apr 16:15
· 12 commits to main since this release
Immutable release. Only release title and notes can be modified.

What's New in Mentra v0.6.0

Permission Scope Hierarchy

  • PermissionRuleStore now supports cross-session rules via consumer-supplied project_id
  • Session, Project, and Global scopes with hierarchical lookup (most specific wins)
  • Automatic SQLite schema migration for existing databases

Compaction Hardening

  • Auto-compaction retries up to 3 times on transient errors, then degrades gracefully (session continues with micro-compaction instead of dying)
  • Configurable transcript cleanup (max_persisted_transcripts) prunes old JSONL files
  • Mock test coverage for remote compaction paths (PreferRemote fallback)

Long-Session Stress Testing

  • SessionGenerator test utility for building multi-turn scripted sessions
  • 50-turn CI integration tests with compaction chains
  • Resume-after-compaction tests
  • Criterion benchmarks for 500-turn sessions, memory scaling, and resume performance

Pattern-Based Approval Rules

  • RuleStore::check() now matches glob patterns against serialized tool input JSON
  • Pattern rules take precedence over no-pattern rules (specific deny overrides general allow)
  • Uses glob-match crate for */? pattern syntax

Pre-Execution Hook System

  • New PreExecutionHook trait with Allow/Deny decisions (separate from observe-only RuntimeHook)
  • PreExecutionHooks collection with first-deny-wins semantics
  • RuntimeBuilder::with_pre_hook() for registration
  • Integrated into both exclusive and parallel tool execution paths
  • ToolExecutionBlocked event for observability

Public Team API

  • Session::spawn_subagent(name, prompt) for programmatic subagent creation (async, non-blocking)
  • Session::list_teammates() and Session::active_subagents() for team state observation
  • SubagentHandle, SpawnedAgentSummary, SpawnedAgentStatus publicly exported

Other

  • 333 tests (up from ~280 in v0.5.0)
  • Criterion benchmarks behind test-utils feature flag

Breaking Changes

  • PermissionRuleStore::save_rules() and load_rules() now require project_id: Option<&str> parameter
  • RuleStore::check() now requires input_json: Option<&str> parameter