legionio 1.4.98 → 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 +6 -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/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,11 @@
|
|
|
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
|
+
|
|
3
9
|
## [1.4.98] - 2026-03-20
|
|
4
10
|
|
|
5
11
|
### 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
|
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
|