Skip to content

Comments

feat(sdk): disable_environment_info, hard stop, trampoline loop fix#189

Merged
parruda merged 3 commits intomainfrom
parruda/disable-environment-info
Jan 30, 2026
Merged

feat(sdk): disable_environment_info, hard stop, trampoline loop fix#189
parruda merged 3 commits intomainfrom
parruda/disable-environment-info

Conversation

@parruda
Copy link
Owner

@parruda parruda commented Jan 30, 2026

Summary

  • disable_environment_info agent config option: New boolean option (default false) that controls whether environment information (date, platform, OS version, working directory) is included in agent system prompts. Supported in Ruby DSL, YAML, and all_agents defaults with agent-level override.
  • Hard stop mechanism (swarm.stop): Thread-safe cancellation of running swarms using IO.pipe signaling + Async::Barrier. Safe to call from signal trap handlers. Interactive REPL simplified to use swarm.stop directly.
  • MCP SSL CRL patch: Fix for OpenSSL 3.6 CRL enforcement breaking HTTPS MCP connections. Defaults to VERIFY_PEER without CRL checks, configurable via mcp_ssl_verify.
  • Trampoline loop fix: Converted mutual recursion between complete() and handle_tool_calls() to a loop, making stack usage O(1) regardless of tool-call rounds. Prevents fiber stack overflow in deep delegation chains with heavy tool usage.

Test plan

  • bundle exec rake swarm_sdk:test — 2284 tests, 0 failures
  • bundle exec rake swarm_cli:test — CLI tests for REPL cancellation changes
  • Verify multi-round tool calls work in a real swarm session
  • Verify swarm.stop cancellation in interactive mode

🤖 Generated with Claude Code

parruda and others added 3 commits January 30, 2026 11:27
Add boolean option (default false) to omit date, platform, OS version,
and working directory from agent system prompts. Supports Ruby DSL,
YAML config, and all_agents defaults with agent-level override.

Co-Authored-By: Claude (claude-fudge-flow[1m]) <noreply@anthropic.com>
Add swarm.stop for thread-safe cancellation of running swarms using
IO.pipe signaling + Async::Barrier. Add MCP SSL patch to fix OpenSSL 3.6
CRL enforcement breaking HTTPS MCP connections by defaulting to
VERIFY_PEER without CRL checks, configurable via mcp_ssl_verify.

Co-Authored-By: Claude (claude-fudge-flow[1m]) <noreply@anthropic.com>
…loop

Replace mutual recursion between complete() and handle_tool_calls() with
a loop in complete(). handle_tool_calls() now returns halt_result or nil
instead of recursing back into complete(). This makes stack usage O(1)
regardless of tool-call rounds, preventing fiber stack overflow in deep
delegation chains. Also adds changelog entries for hard stop mechanism
and MCP SSL CRL fix from previous commit.

Co-Authored-By: Claude (claude-fudge-flow[1m]) <noreply@anthropic.com>
@parruda parruda merged commit 0558468 into main Jan 30, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant