rcrewai-rails 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 89c254df462d78758a78ea3ac3e54c2aef26cc0126f3c0db941ae2c0ad23b607
4
- data.tar.gz: '029aab1519fbb10ac847dc043cdaa1dcaed493cce784a3186ef439ad3b9206bd'
3
+ metadata.gz: 8a95b32182721ebdcaa575a0c4d06851286bd3ba79c1028d958a49c0e8eda054
4
+ data.tar.gz: 3f00b82481064604f975679bd358cb6fa0e7c8f97fe4378ae7ab44be277ffdbf
5
5
  SHA512:
6
- metadata.gz: c69a4a28cf7927140a04724cf9e2e66e05cf777c12e7e259c5cb4d5e36b3e3ed68b31d2702cb337d2be009f1789408d1e7c91047f3e77252c7f77313943a18f0
7
- data.tar.gz: 7cd18030c6621e9fbad921f4f3bd3d96680796a73238b907f7cc5bd877ae1e8e53d8eacdb6b9151de7c2000d3b27ea7e068b146ca6b300742d65275076f30907
6
+ metadata.gz: d1090695f7c42d14caf966231f919c64ec0b2077cbc53d3192fd06823a8742f05e74fafc7d904fcc8ff4308888d3231aff9877fcedf5d5deb344849c905958db
7
+ data.tar.gz: 4573e67c5c9b925917d0a8a44ad38da4f6572a9580adb9da0122939118f94e9fe2b7e50be115165d01205154e7a6481d2a9bce7cf39ee8cdf00ecb6bfdf2348e
data/CHANGELOG.md CHANGED
@@ -7,6 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.9.0] - 2026-09-10
11
+
12
+ Tracks **rcrewai 0.9.0**, whose theme is concurrency: a turn's tool calls,
13
+ consensus proposals/scoring, and embeddings now fan out across threads. The
14
+ 0.8.1 suite passed against it unchanged, so this release is about verifying the
15
+ engine under concurrency and exposing the new opt-out.
16
+
17
+ ### Added
18
+ - `rcrewai_agents.parallel_tools` — forwards `parallel_tools:` to
19
+ `RCrewAI::Agent`. rcrewai 0.9 runs a turn's tool calls concurrently by
20
+ default; set this to `false` on an agent whose tools are not safe to run in
21
+ parallel (or that must not fan out against a rate-limited API). Nullable, and
22
+ only forwarded when explicitly set, so existing agents keep the gem's default.
23
+
24
+ ### Verified
25
+ - **Span attribution holds under concurrent tool calls.** rcrewai 0.9 emits tool
26
+ events from worker threads, carrying the run span across the boundary
27
+ (`Events.with_parent` is thread-local). Confirmed against the real gem that
28
+ concurrent tool events arrive with the correct `parent_id` and none nil, and
29
+ added collector specs covering interleaved starts/results matched by
30
+ `call_id`, a failing tool not affecting its sibling, and delivery from eight
31
+ threads at once.
32
+
33
+ ### Changed
34
+ - Requires `rcrewai ~> 0.9.0`.
35
+
36
+ ### Upgrading
37
+ Existing installs need the new migration:
38
+
39
+ ```bash
40
+ $ rails rcrew_ai_rails:install:migrations
41
+ $ rails db:migrate
42
+ ```
43
+
44
+ This adds one nullable column, `rcrewai_agents.parallel_tools`. Nothing changes
45
+ until you set it.
46
+
10
47
  ## [0.8.1] - 2026-09-10
11
48
 
12
49
  ### Fixed
@@ -274,7 +311,8 @@ existing agents, tasks, and crews build unchanged.
274
311
  ### Changed
275
312
  - Rename generators from `rcrew_a_i` to `rcrewai` namespacing.
276
313
 
277
- [Unreleased]: https://github.com/gkosmo/rcrewai-rails/compare/v0.8.1...HEAD
314
+ [Unreleased]: https://github.com/gkosmo/rcrewai-rails/compare/v0.9.0...HEAD
315
+ [0.9.0]: https://github.com/gkosmo/rcrewai-rails/compare/v0.8.1...v0.9.0
278
316
  [0.8.1]: https://github.com/gkosmo/rcrewai-rails/compare/v0.8.0...v0.8.1
279
317
  [0.8.0]: https://github.com/gkosmo/rcrewai-rails/compare/v0.7.1...v0.8.0
280
318
  [0.7.1]: https://github.com/gkosmo/rcrewai-rails/compare/v0.7.0...v0.7.1
data/README.md CHANGED
@@ -10,12 +10,13 @@ Rails engine for integrating [RcrewAI](https://github.com/gkosmo/rcrewai-rails)
10
10
  - **Web UI**: Monitor and manage crews through a built-in interface
11
11
  - **Rails-Specific Tools**: Pre-built tools for ActiveRecord, ActionMailer, Rails cache, and more
12
12
  - **Configuration**: Flexible configuration through Rails initializers
13
- - **Full rcrewai 0.8 feature coverage** (see [rcrewai 0.8 capabilities](#rcrewai-08-capabilities) and [rcrewai 0.7 capabilities](#rcrewai-07-capabilities)):
13
+ - **Full rcrewai 0.9 feature coverage** (see [rcrewai 0.9](#rcrewai-09-capabilities), [0.8](#rcrewai-08-capabilities) and [0.7](#rcrewai-07-capabilities) capabilities):
14
14
  - Agent config: reasoning, per-agent LLM, rate limiting, context-window trimming, cognitive memory
15
15
  - Task output: structured output schemas, guardrails, file output, multimodal attachments
16
16
  - Crew: `before_kickoff`/`after_kickoff` hooks, planning, the `consensual` process, batch execution
17
17
  - Knowledge (RAG) sources and Flow persistence
18
18
  - Checkpointing with resume, LLM interceptors, and the Bedrock / Snowflake / OpenAI-compatible providers
19
+ - Concurrent tool calls, with a per-agent opt-out
19
20
 
20
21
  ## Observation Engine
21
22
 
@@ -104,7 +105,13 @@ $ rails db:migrate
104
105
  (The task name comes from the engine's railtie name, `rcrew_ai_rails`.)
105
106
 
106
107
  Rails copies only the migrations your app does not already have. Upgrading to
107
- 0.8.0 from 0.7.x adds one:
108
+ 0.9.0 from 0.8.x adds one:
109
+
110
+ | Migration | Purpose |
111
+ |---|---|
112
+ | `013_add_parallel_tools_to_rcrewai_agents` | `rcrewai_agents.parallel_tools` — per-agent opt-out from concurrent tool calls |
113
+
114
+ Upgrading from 0.7.x adds one more:
108
115
 
109
116
  | Migration | Purpose |
110
117
  |---|---|
@@ -276,9 +283,27 @@ crew.execute_sync(inputs)
276
283
  CrewExecutionJob.set(wait: 5.minutes).perform_later(crew, inputs)
277
284
  ```
278
285
 
279
- ## rcrewai 0.8 capabilities
286
+ ## rcrewai 0.9 capabilities
287
+
288
+ This engine tracks [rcrewai](https://github.com/gkosmo/rcrewAI) `~> 0.9`.
289
+
290
+ ### Concurrency
280
291
 
281
- This engine tracks [rcrewai](https://github.com/gkosmo/rcrewAI) `~> 0.8`.
292
+ rcrewai 0.9 runs a turn's tool calls concurrently, so a turn costs the slowest
293
+ call rather than the sum. This is on by default and needs no configuration.
294
+
295
+ Opt an agent out when its tools are not safe to run in parallel, or must not
296
+ fan out against a rate-limited API:
297
+
298
+ ```ruby
299
+ agent.update!(parallel_tools: false)
300
+ ```
301
+
302
+ Left `nil` (the default), the gem's own default applies. The observation
303
+ engine attributes concurrent tool calls correctly — each tool span is matched
304
+ to its result by `call_id`, not by arrival order.
305
+
306
+ ## rcrewai 0.8 capabilities
282
307
 
283
308
  ### Checkpointing and resume
284
309
 
@@ -371,6 +396,7 @@ existing records are unaffected — set only what you need.
371
396
  | `max_rpm` | Rate-limit the agent's LLM calls (requests per minute) |
372
397
  | `reasoning` / `max_reasoning_attempts` | Run a planning/reasoning pass before answering |
373
398
  | `respect_context_window` | Trim history to fit the model's context window |
399
+ | `parallel_tools` | Run a turn's tool calls concurrently (rcrewai 0.9; `nil` uses the gem default of on) |
374
400
  | `llm_config` (JSON) | Per-agent LLM override, e.g. `{ "provider": "anthropic", "model": "claude-sonnet-5" }` |
375
401
  | `memory_enabled` + `memory_scope` + `memory_short_term_limit` | Enable cognitive memory (see below) |
376
402
 
@@ -34,7 +34,7 @@ module RcrewAI
34
34
  )
35
35
  end
36
36
 
37
- # rcrewai 0.5.0 agent options. Only emit a key when it is meaningfully
37
+ # rcrewai 0.5.0+ agent options. Only emit a key when it is meaningfully
38
38
  # set, so an all-default record constructs exactly as it did pre-0.5.
39
39
  def agent_options
40
40
  opts = {}
@@ -42,6 +42,10 @@ module RcrewAI
42
42
  opts[:reasoning] = reasoning if reasoning
43
43
  opts[:max_reasoning_attempts] = max_reasoning_attempts if reasoning && max_reasoning_attempts
44
44
  opts[:respect_context_window] = respect_context_window if respect_context_window
45
+ # rcrewai 0.9 runs a turn's tool calls concurrently by default. nil
46
+ # means "leave the gem's default alone"; only an explicit false (or
47
+ # true) is forwarded.
48
+ opts[:parallel_tools] = parallel_tools unless parallel_tools.nil?
45
49
  opts[:llm] = llm_config.symbolize_keys if llm_config.present?
46
50
  sources = rcrew_knowledge_sources
47
51
  opts[:knowledge_sources] = sources if sources.any?
@@ -0,0 +1,7 @@
1
+ class AddParallelToolsToRcrewAIAgents < ActiveRecord::Migration[7.0]
2
+ def change
3
+ # Nullable on purpose: nil means "use the rcrewai default" (parallel tools
4
+ # on), so existing agents keep the gem's behavior without a backfill.
5
+ add_column :rcrewai_agents, :parallel_tools, :boolean
6
+ end
7
+ end
@@ -42,6 +42,7 @@ class CreateRcrewAITables < ActiveRecord::Migration[7.0]
42
42
  t.boolean :reasoning, default: false, null: false
43
43
  t.integer :max_reasoning_attempts, default: 3
44
44
  t.boolean :respect_context_window, default: false, null: false
45
+ t.boolean :parallel_tools
45
46
  t.text :llm_config
46
47
  t.boolean :active, default: true
47
48
 
@@ -1,6 +1,6 @@
1
1
  module RcrewAI
2
2
  module Rails
3
- VERSION = "0.8.1"
3
+ VERSION = "0.9.0"
4
4
  Version = VERSION
5
5
  end
6
6
  end
@@ -45,7 +45,7 @@ Gem::Specification.new do |spec|
45
45
  spec.require_paths = ["lib"]
46
46
 
47
47
  # Core dependency
48
- spec.add_dependency "rcrewai", "~> 0.8.0"
48
+ spec.add_dependency "rcrewai", "~> 0.9.0"
49
49
 
50
50
  # Rails dependencies
51
51
  spec.add_dependency "rails", ">= 7.0.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rcrewai-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - gkosmo
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 0.8.0
18
+ version: 0.9.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 0.8.0
25
+ version: 0.9.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rails
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -262,6 +262,7 @@ files:
262
262
  - db/migrate/010_create_rcrewai_spans.rb
263
263
  - db/migrate/011_add_observation_rollups_to_rcrewai_executions.rb
264
264
  - db/migrate/012_create_rcrewai_checkpoints.rb
265
+ - db/migrate/013_add_parallel_tools_to_rcrewai_agents.rb
265
266
  - docs/api.html
266
267
  - docs/capabilities.html
267
268
  - docs/examples.html