Skip to content

v3.0.1 - Agent Enhancements & LiveQuery

Choose a tag to compare

@AdrianCurtin AdrianCurtin released this 09 Jan 02:15
· 65 commits to master since this release

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.0234

Callback/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/.nin queries
  • NEW: pointers_only option for CollectionProxy#as_json
  • FIXED: add!, add_unique!, remove! methods correctly convert Parse objects to pointer format

Author: Adrian Curtin
Date: November 2025