legionio 1.4.114 → 1.4.115

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: '033549b7666e088a8ac6fae313d91767f35c04a607ba20feca1726a5090cc828'
4
- data.tar.gz: 5020e3bbfb01cc909730d239ce80236b6ba787ea56b9329dd8872047e84ffd9f
3
+ metadata.gz: abcb24b9f1dbcec868c68b5b66d203405896b38487f4197f352f2ad69e96b2b4
4
+ data.tar.gz: 9a684aa568b3d19fcc9e19c186a4d2a9efdc7d5001776cceae9d33d9aa0cc7dd
5
5
  SHA512:
6
- metadata.gz: bb44c0c2f7f6545a26df93eb103c0876f7786256b19d6354c5b6268f3df34696925afd2225535260f862dba3475f797fd027f073609785af985b9d87e9abb011
7
- data.tar.gz: ad9f7cc79fa61dc15c304e29daf07953b8a63f87dbe78e0f438d68c82c1bcb030fafbf8ced1facb18dd668857544b7637fcd736a8a23ccf52ad0a54d273c17ee
6
+ metadata.gz: 41610c2dec55f16656d15356ffc29c7d0f76020623e662fa47dbd54ed67038962a02b1f4dfadfa9a3057d6fd3d124a24dc476f95ae14e3f5cb7510f71283fcbc
7
+ data.tar.gz: 2cfbdefeb8d689545a5fb62b47255dcae967cc83087feaf950bc0169aedce32b5c89c24e7f9dc951d74c43b2ac45cd49e0100740dffd786d447dc2c11f71a94d
data/CLAUDE.md CHANGED
@@ -9,7 +9,7 @@ The primary gem for the LegionIO framework. An extensible async job engine for s
9
9
 
10
10
  **GitHub**: https://github.com/LegionIO/LegionIO
11
11
  **Gem**: `legionio`
12
- **Version**: 1.4.107
12
+ **Version**: 1.4.114
13
13
  **License**: Apache-2.0
14
14
  **Docker**: `legionio/legion`
15
15
  **Ruby**: >= 3.4
@@ -50,14 +50,14 @@ Legion.start
50
50
  ├── 9. setup_gaia (legion-gaia, cognitive coordination layer, optional)
51
51
  ├── 10. setup_telemetry (OpenTelemetry, optional)
52
52
  ├── 11. setup_supervision (process supervision)
53
- ├── 12. load_extensions (two-phase: require+autobuild all, then hook_all_actors)
53
+ ├── 12. load_extensions (parallel require+autobuild on 4-thread pool, then hook_all_actors)
54
54
  ├── 13. Legion::Crypt.cs (distribute cluster secret)
55
55
  └── 14. setup_api (start Sinatra/Puma on port 4567)
56
56
  ```
57
57
 
58
58
  Each phase calls `Legion::Readiness.mark_ready(:component)`. All phases are individually toggleable via `Service.new(transport: false, ...)`.
59
59
 
60
- Extension loading is two-phase: all extensions are `require`d and `autobuild` runs first, collecting actors into `@pending_actors`. After all extensions are loaded, `hook_all_actors` starts AMQP subscriptions, timers, and other actor types. This prevents race conditions where early extensions start ticking while later ones haven't loaded yet.
60
+ Extension loading is two-phase and parallel: all extensions are `require`d and `autobuild` runs concurrently on a `Concurrent::FixedThreadPool(min(count, extensions.parallel_pool_size))`, collecting actors into a thread-safe `Concurrent::Array` of `@pending_actors`. Pool size defaults to 24, configurable via `Legion::Settings[:extensions][:parallel_pool_size]`. After all extensions are loaded, `hook_all_actors` starts AMQP subscriptions, timers, and other actor types sequentially. This prevents race conditions where early extensions start ticking while later ones haven't loaded yet. Thread safety relies on ThreadLocal AMQP channels, per-extension Settings keys, and sequential post-processing of Catalog transitions and Registry writes.
61
61
 
62
62
  ### Reload Sequence
63
63
 
@@ -476,7 +476,7 @@ legion
476
476
 
477
477
  ### MCP Design
478
478
 
479
- Extracted to the `legion-mcp` gem (v0.1.0). See `legion-mcp/CLAUDE.md` for full architecture.
479
+ Extracted to the `legion-mcp` gem (v0.4.1). See `legion-mcp/CLAUDE.md` for full architecture.
480
480
 
481
481
  - `Legion::MCP.server` is memoized singleton — call `Legion::MCP.reset!` in tests
482
482
  - Tool naming: `legion.snake_case_name` (dot namespace, not slash)
@@ -500,7 +500,7 @@ Extracted to the `legion-mcp` gem (v0.1.0). See `legion-mcp/CLAUDE.md` for full
500
500
  | `oj` (>= 3.16) | Fast JSON (C extension) |
501
501
  | `puma` (>= 6.0) | HTTP server for API |
502
502
  | `rackup` (>= 2.0) | Rack server launcher for MCP HTTP transport |
503
- | `legion-mcp` | MCP server + Tier 0 routing (extracted gem) |
503
+ | `legion-mcp` (>= 0.4) | MCP server + Tier 0 routing (extracted gem) |
504
504
  | `reline` (>= 0.5) | Interactive line editing for chat REPL |
505
505
  | `rouge` (>= 4.0) | Syntax highlighting for chat markdown rendering |
506
506
  | `tty-spinner` (~> 0.9) | Spinner animation for CLI loading states |
@@ -723,8 +723,8 @@ rack-test, rake, rspec, rubocop, rubocop-rspec, simplecov
723
723
 
724
724
  ```bash
725
725
  bundle install
726
- bundle exec rspec # 1499 examples, 0 failures
727
- bundle exec rubocop # 418 files, 0 offenses
726
+ bundle exec rspec # 2514 examples, 0 failures
727
+ bundle exec rubocop # 0 offenses
728
728
  ```
729
729
 
730
730
  Specs use `rack-test` for API testing. `Legion::JSON.load` returns symbol keys — use `body[:data]` not `body['data']` in specs.
data/README.md CHANGED
@@ -14,7 +14,7 @@ Schedule tasks, chain services into dependency graphs, run them concurrently via
14
14
  ╰──────────────────────────────────────╯
15
15
  ```
16
16
 
17
- **Ruby >= 3.4** | **v1.4.78** | **Apache-2.0** | [@Esity](https://github.com/Esity)
17
+ **Ruby >= 3.4** | **v1.4.114** | **Apache-2.0** | [@Esity](https://github.com/Esity)
18
18
 
19
19
  ---
20
20
 
@@ -370,9 +370,9 @@ Brain-modeled cognitive architecture. 20 core orchestration extensions plus 222
370
370
 
371
371
  Coordinated by [legion-gaia](https://github.com/LegionIO/legion-gaia), the cognitive coordination layer with tick-cycle scheduling, channel abstraction, and weighted routing across cognitive modules.
372
372
 
373
- ### AI / LLM (3 provider extensions)
373
+ ### AI / LLM (7 provider extensions)
374
374
 
375
- `lex-claude` `lex-openai` `lex-gemini`
375
+ `lex-azure-ai` `lex-bedrock` `lex-claude` `lex-foundry` `lex-gemini` `lex-openai` `lex-xai`
376
376
 
377
377
  Powered by [legion-llm](https://github.com/LegionIO/legion-llm) with three-tier routing (local Ollama, fleet GPU servers, cloud APIs), intent-based dispatch, health tracking, and automatic model discovery.
378
378
 
@@ -84,7 +84,8 @@ module Legion
84
84
  def load_extensions_parallel(eligible)
85
85
  return if eligible.empty?
86
86
 
87
- pool_size = [4, eligible.count].min
87
+ max_threads = Legion::Settings.dig(:extensions, :parallel_pool_size) || 24
88
+ pool_size = [eligible.count, max_threads].min
88
89
  executor = Concurrent::FixedThreadPool.new(pool_size)
89
90
 
90
91
  futures = eligible.map do |entry|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Legion
4
- VERSION = '1.4.114'
4
+ VERSION = '1.4.115'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legionio
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.114
4
+ version: 1.4.115
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity