legionio 1.4.97 → 1.4.99
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 +4 -4
- data/CHANGELOG.md +11 -0
- data/lib/legion/api/llm.rb +1 -1
- data/lib/legion/api/middleware/request_logger.rb +26 -0
- data/lib/legion/api.rb +2 -0
- data/lib/legion/extensions/actors/base.rb +4 -1
- data/lib/legion/extensions/core.rb +6 -6
- data/lib/legion/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8a553c0aa3d45028625552525159880be65a55fb43002865b19e6e02db32feb7
|
|
4
|
+
data.tar.gz: 96aeca93c251fe5fb2f4b6be197511f6094848940d19e2274bf3d77d019382d4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 105e4dc81f74bb9a5aef81771a30fcec18ea29171d78040fef5a90d9235e191890c732569a68dd7ac225e68d0b69c35a11b78d78f2917f215b59d39a8c272145
|
|
7
|
+
data.tar.gz: a35491bdef7e4869acae4ee75fc7f303d259ee72c49e4dd30db99e7ea8f176e43c137e344ecbfc8cf6fa3aa0998dafef4e695c49520fb57ecfc9e9a8c3e65485
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Legion Changelog
|
|
2
2
|
|
|
3
|
+
## [1.4.99] - 2026-03-21
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- `Base#manual` resolves String `runner_class` via `Kernel.const_get` before calling `.send` — fixes NoMethodError on lex-telemetry Publisher and lex-llm-gateway SpoolFlush actors
|
|
7
|
+
- `Base#manual` falls back to `:action` when `runner_function` is not defined — fixes NameError on self-contained actors (lex-lex AgentWatcher, lex-detect ObserverTick)
|
|
8
|
+
|
|
9
|
+
## [1.4.98] - 2026-03-20
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
- `auto_generate_data` and `auto_generate_transport` use `lex_class.const_defined?(:Data, false)` instead of `Kernel.const_defined?` — fixes constant overwrite when extensions pre-define their own Data/Transport modules (e.g. lex-synapse)
|
|
13
|
+
|
|
3
14
|
## [1.4.97] - 2026-03-20
|
|
4
15
|
|
|
5
16
|
### Fixed
|
data/lib/legion/api/llm.rb
CHANGED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
class API < Sinatra::Base
|
|
5
|
+
module Middleware
|
|
6
|
+
class RequestLogger
|
|
7
|
+
def initialize(app)
|
|
8
|
+
@app = app
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def call(env)
|
|
12
|
+
start = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
|
|
13
|
+
status, headers, body = @app.call(env)
|
|
14
|
+
duration = ((::Process.clock_gettime(::Process::CLOCK_MONOTONIC) - start) * 1000).round(2)
|
|
15
|
+
|
|
16
|
+
Legion::Logging.info "[api] #{env['REQUEST_METHOD']} #{env['PATH_INFO']} #{status} #{duration}ms"
|
|
17
|
+
[status, headers, body]
|
|
18
|
+
rescue StandardError => e
|
|
19
|
+
duration = ((::Process.clock_gettime(::Process::CLOCK_MONOTONIC) - start) * 1000).round(2)
|
|
20
|
+
Legion::Logging.error "[api] #{env['REQUEST_METHOD']} #{env['PATH_INFO']} 500 #{duration}ms - #{e.message}"
|
|
21
|
+
raise
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
data/lib/legion/api.rb
CHANGED
|
@@ -8,6 +8,7 @@ require_relative 'readiness'
|
|
|
8
8
|
require_relative 'api/middleware/auth'
|
|
9
9
|
require_relative 'api/middleware/body_limit'
|
|
10
10
|
require_relative 'api/middleware/rate_limit'
|
|
11
|
+
require_relative 'api/middleware/request_logger'
|
|
11
12
|
require_relative 'api/helpers'
|
|
12
13
|
require_relative 'api/validators'
|
|
13
14
|
require_relative 'api/tasks'
|
|
@@ -123,6 +124,7 @@ module Legion
|
|
|
123
124
|
register Routes::Acp
|
|
124
125
|
register Routes::Prompts
|
|
125
126
|
|
|
127
|
+
use Legion::API::Middleware::RequestLogger
|
|
126
128
|
use Legion::Rbac::Middleware if defined?(Legion::Rbac::Middleware)
|
|
127
129
|
|
|
128
130
|
# Hook registry (preserved from original implementation)
|
|
@@ -14,7 +14,10 @@ module Legion
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def manual
|
|
17
|
-
runner_class
|
|
17
|
+
klass = runner_class
|
|
18
|
+
klass = Kernel.const_get(klass) if klass.is_a?(String)
|
|
19
|
+
func = respond_to?(:runner_function) ? runner_function : :action
|
|
20
|
+
klass.send(func, **args)
|
|
18
21
|
rescue StandardError => e
|
|
19
22
|
Legion::Logging.error e.message
|
|
20
23
|
Legion::Logging.error e.backtrace
|
|
@@ -178,22 +178,22 @@ module Legion
|
|
|
178
178
|
def auto_generate_transport
|
|
179
179
|
require 'legion/extensions/transport'
|
|
180
180
|
log.debug 'running meta magic to generate a transport base class'
|
|
181
|
-
if
|
|
182
|
-
mod =
|
|
181
|
+
if lex_class.const_defined?(:Transport, false)
|
|
182
|
+
mod = lex_class.const_get(:Transport, false)
|
|
183
183
|
mod.extend(Legion::Extensions::Transport) unless mod.respond_to?(:build)
|
|
184
184
|
else
|
|
185
|
-
|
|
185
|
+
lex_class.const_set(:Transport, Module.new { extend Legion::Extensions::Transport })
|
|
186
186
|
end
|
|
187
187
|
end
|
|
188
188
|
|
|
189
189
|
def auto_generate_data
|
|
190
190
|
require 'legion/extensions/data'
|
|
191
191
|
log.debug 'running meta magic to generate a data base class'
|
|
192
|
-
if
|
|
193
|
-
mod =
|
|
192
|
+
if lex_class.const_defined?(:Data, false)
|
|
193
|
+
mod = lex_class.const_get(:Data, false)
|
|
194
194
|
mod.extend(Legion::Extensions::Data) unless mod.respond_to?(:build)
|
|
195
195
|
else
|
|
196
|
-
|
|
196
|
+
lex_class.const_set(:Data, Module.new { extend Legion::Extensions::Data })
|
|
197
197
|
end
|
|
198
198
|
rescue StandardError => e
|
|
199
199
|
log.error e.message
|
data/lib/legion/version.rb
CHANGED
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.
|
|
4
|
+
version: 1.4.99
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
@@ -375,6 +375,7 @@ files:
|
|
|
375
375
|
- lib/legion/api/middleware/auth.rb
|
|
376
376
|
- lib/legion/api/middleware/body_limit.rb
|
|
377
377
|
- lib/legion/api/middleware/rate_limit.rb
|
|
378
|
+
- lib/legion/api/middleware/request_logger.rb
|
|
378
379
|
- lib/legion/api/middleware/tenant.rb
|
|
379
380
|
- lib/legion/api/nodes.rb
|
|
380
381
|
- lib/legion/api/openapi.rb
|