What’s New in 0.4
Review the public integration contract and verified compatibility boundaries.
After reading this guide, you will know:
- Which configuration changes need an application update.
- Where to find the proposed public API and compatibility evidence.
Use Effective Configuration
RubyLLM::AgUI.configure do |config|
config.protocol_version = '1.0'
end
Other protocol versions raise ConfigurationError. The unused
allow_client_history setting is removed. Client history remains the host’s
responsibility. See Upgrading.
Preserve Immutable Request and Store Values
Parsed input and JSON record values now copy and freeze their nested members. Changing a caller’s original state cannot change a stored snapshot or identity. Use new inputs and record transitions instead of editing nested values. See Reconnects.
The Public API Contract identifies application and custom-store APIs and separates orchestration internals.
Associate Resumed Tool Results Once
Real RubyLLM approval resumes now emit the result of the original call without
repeating its start and arguments. The offline real-chat and opt-in provider
checks use the same harness. Run#record also exposes the recorded outcome
after a reconnect, matching the return value from stream. See
Approval and Resume.
Verify the Provider Separately
The opt-in harness checks OpenRouter text and a synthetic approval/resume without external business effects. The same real RubyLLM chat setup has offline HTTP tests. See Provider Verification for credential handling, request limits, and the scope of the results.
Read Compatibility for recorded results and limits; an intended matrix is not a completed verification.