v3.0.1 - Agent Enhancements & LiveQuery
Agent Enhancements & LiveQuery Improvements
This release adds comprehensive agent features and LiveQuery improvements.
Agent Enhancements
Environment Variable Gating for MCP:
# Requires PARSE_MCP_ENABLED=true AND Parse.mcp_server_enabled = true
Parse.mcp_server_enabled = true
Parse::Agent.enable_mcp!(port: 3001)Conversation Support (Multi-turn):
agent = Parse::Agent.new
agent.ask("How many users are there?")
agent.ask_followup("What about admins?")
agent.clear_conversation!Token Usage Tracking:
agent.token_usage # => { prompt_tokens: 450, completion_tokens: 120, total_tokens: 570 }
agent.estimated_cost # => 0.0234Callback/Hooks System:
agent.on_tool_call { |tool, args| puts "Calling: #{tool}" }
agent.on_tool_result { |tool, args, result| log_result(tool, result) }
agent.on_error { |error, context| notify_slack(error) }Streaming Support:
agent.ask_streaming("Analyze user growth trends") { |chunk| print chunk }Export/Import Conversation:
state = agent.export_conversation
new_agent.import_conversation(state)LiveQuery Enhancements
- NEW: Configurable frame read timeout to prevent indefinite socket blocking
- NEW: Automatic cleanup of expired cache entries in
Parse::Audience
Bug Fixes
- FIXED: Arrays containing Parse objects now stored in proper pointer format for
.in/.ninqueries - NEW:
pointers_onlyoption forCollectionProxy#as_json - FIXED:
add!,add_unique!,remove!methods correctly convert Parse objects to pointer format
Author: Adrian Curtin
Date: November 2025