legionio 1.9.43 → 1.9.52

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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -0
  3. data/README.md +126 -569
  4. data/legionio.gemspec +5 -2
  5. data/lib/legion/api/auth_teams.rb +7 -4
  6. data/lib/legion/api/default_settings.rb +5 -4
  7. data/lib/legion/api/extensions.rb +2 -2
  8. data/lib/legion/api/health.rb +73 -0
  9. data/lib/legion/api/middleware/auth.rb +4 -1
  10. data/lib/legion/api/openapi.rb +8 -4
  11. data/lib/legion/api/stats.rb +10 -9
  12. data/lib/legion/api.rb +6 -1
  13. data/lib/legion/cli/chat/daemon_chat.rb +1 -1
  14. data/lib/legion/cli/chat_command.rb +3 -3
  15. data/lib/legion/cli/connect_command.rb +34 -9
  16. data/lib/legion/cli/llm_command.rb +17 -14
  17. data/lib/legion/extensions/builders/routes.rb +1 -1
  18. data/lib/legion/helpers/context.rb +1 -1
  19. data/lib/legion/service.rb +32 -2
  20. data/lib/legion/version.rb +1 -1
  21. metadata +9 -24
  22. data/exe/replay_ledger +0 -395
  23. data/extensions-agentic/lex-consent/db/migrations/001_create_consent_maps.rb +0 -24
  24. data/extensions-agentic/lex-consent/lex-consent.gemspec +0 -26
  25. data/extensions-agentic/lex-consent/lib/legion/extensions/agentic/consent/actors/tier_evaluation.rb +0 -112
  26. data/extensions-agentic/lex-consent/lib/legion/extensions/agentic/consent/models/consent_map.rb +0 -74
  27. data/extensions-agentic/lex-consent/lib/legion/extensions/agentic/consent/runners/consent.rb +0 -210
  28. data/extensions-agentic/lex-consent/lib/legion/extensions/agentic/consent/version.rb +0 -11
  29. data/extensions-agentic/lex-consent/lib/legion/extensions/agentic/consent.rb +0 -15
  30. data/extensions-agentic/lex-reconciliation/Gemfile +0 -10
  31. data/extensions-agentic/lex-reconciliation/README.md +0 -73
  32. data/extensions-agentic/lex-reconciliation/lex-reconciliation.gemspec +0 -26
  33. data/extensions-agentic/lex-reconciliation/lib/legion/extensions/reconciliation/actors/reconciliation_cycle.rb +0 -143
  34. data/extensions-agentic/lex-reconciliation/lib/legion/extensions/reconciliation/drift_log.rb +0 -161
  35. data/extensions-agentic/lex-reconciliation/lib/legion/extensions/reconciliation/runners/drift_checker.rb +0 -137
  36. data/extensions-agentic/lex-reconciliation/lib/legion/extensions/reconciliation/version.rb +0 -9
  37. data/extensions-agentic/lex-reconciliation/lib/legion/extensions/reconciliation.rb +0 -13
  38. data/extensions-agentic/lex-reconciliation/spec/legion/extensions/reconciliation/drift_log_spec.rb +0 -40
  39. data/extensions-agentic/lex-reconciliation/spec/legion/extensions/reconciliation/runners/drift_checker_spec.rb +0 -107
  40. data/extensions-agentic/lex-reconciliation/spec/legion/extensions/reconciliation_spec.rb +0 -19
  41. data/extensions-agentic/lex-reconciliation/spec/spec_helper.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0c2e14e59941d157f3934d2defda8273c0d33e4d2ccc7c1cda305cdfd0c4a56d
4
- data.tar.gz: f238dcc116658b5c35d4990531472f700b0504170af2ac80dff194cd388c0c9b
3
+ metadata.gz: ede4c3b865760acda216ca62dec3963eeba1dc510fa8320438e9fc6f5d290810
4
+ data.tar.gz: 4428bd1a57998cf59bc887fbbcf67fea6f37c1c4b3036f142dd0bff74d87823c
5
5
  SHA512:
6
- metadata.gz: 3c10304ab55f3ffd752971ea184fb7917ab499adda804dcae7f92e9bcffd0c8b7860a36a79ba1110d27e02b72783660e1b4f77fb929b98d08b93ceff5cc20894
7
- data.tar.gz: dc5f13d4b000a5d3949b65885af43fba4a041a7df9de37fc13ae9fb5e282b07a5e0cac7583ef4c77f44f7c1734308e20949704c2d7e4fa6e3df21ac3666edf67
6
+ metadata.gz: 12130c29fd51936cd819fc0aa7d320a0b5455b0bd20f4693196bf3e853ff2775ad1d5654233e00469795edc1cfc2c78377292c7b290d02fc2d821818da35ffa0
7
+ data.tar.gz: ae8b7b9820a8735cfbf6bcaa4bf74b05d49d63a628d4ed06a6a9ed5ffb360138a77f8ea8ad71637c20abbbc3b3b50bf08cf1b0683465b1207ecddffd6386b394
data/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # Legion Changelog
2
2
 
3
+ ## [1.9.52] - 2026-08-07
4
+ ### Fixed
5
+ - `/api/stats` + `legion llm status` now report routing on and read circuit state from Inventory SSOT; removed dead `Discovery::System/Ollama` guards and retargeted CLI discovery at `Inventory::Discovery::System`
6
+ - Fixed §4 exception-handling violations: `stats.rb` and `llm_command.rb` now use `handle_exception` instead of silent swallows or unstructured logging
7
+
8
+ ## [1.9.51] - 2026-07-31
9
+ ### Fixed
10
+ - Puma: add `force_shutdown_after` (default 10s) to server_settings to prevent indefinite shutdown hangs when streaming connections are wedged (puma/puma#3569). Previously Puma's default of `-1` meant SIGTERM would wait forever on any open SSE/streaming body thread that could not be interrupted
11
+
12
+ ## [1.9.50] - 2026-07-15
13
+ ### Fixed
14
+ - Backfill extension routes with API router after boot to fix /api/extensions/* 404s
15
+ - Fix CLI daemon_client require path after legion-llm restructure
16
+ ## [1.9.48] - 2026-07-02
17
+
18
+ ### Security
19
+ - API: fixed an authentication bypass in the auth middleware's `skip_path?` (CWE-284). It used bare prefix matching (`start_with?`), so any path sharing a prefix with an unauthenticated route bypassed auth — e.g. `/api/healthily_fake`, `/api/health/admin/export`, `/api/auth/tokens_dump` all matched `/api/health` / `/api/auth/token`. Now uses segment-bounded matching (exact path or `/`-delimited sub-path) via precompiled `SKIP_PATTERNS`, so only the intended paths and their legitimate sub-paths skip auth (fixes #209)
20
+
21
+ ## [1.9.47] - 2026-07-02
22
+
23
+ ### Fixed
24
+ - API: `GET /api/health` now reflects subsystem health instead of always returning `200 ok`. It reports `degraded` with HTTP `503` when an **enabled and previously-healthy** subsystem (transport, cache, data) has broken — e.g. transport `session_open: false` after a connection recovery failure — and includes a per-component `components` breakdown (`enabled`/`healthy`/`detail`). A subsystem only degrades health if it was marked ready at boot (via `Legion::Readiness`); disabled or still-booting subsystems never fail the check. This makes the endpoint usable for load balancers and monitoring (fixes #194)
25
+
26
+ ## [1.9.46] - 2026-07-02
27
+
28
+ ### Fixed
29
+ - API: `GET /api/extensions/tools` no longer 500s with `undefined method 'filter_tool_entries'`. The route block runs in the Sinatra instance context but `filter_tool_entries`/`serialize_tool_entry` are class methods on `Routes::Extensions`; they are now called on the explicit receiver, matching the pattern used by the other catalog routes. Added request specs for `/api/extensions/tools` (fixes #227)
30
+
31
+ ## [1.9.45] - 2026-07-02
32
+
33
+ ### Fixed
34
+ - API: Teams delegated OAuth callback now forwards `tenant_id`/`client_id` to `Entra::Helpers::TokenManager.save_token(:delegated, …)` so browser-login tokens can be refreshed (previously omitted, forcing refresh to fall back to settings and silently fail for delegated-only logins). The unshipped `TokenCache` `require` that 500'd the callback was already removed in 1.9.43 (fixes #212)
35
+
36
+ ## [1.9.44] - 2026-07-01
37
+
38
+ ### Fixed
39
+ - CLI: `connect status` now reads the Entra `TokenManager` (`token_data(:delegated)` + `expired?`) for the `microsoft` provider instead of the legacy `Legion::Auth::TokenManager` secret store, which the delegated/Teams login never writes to — previously always reported `microsoft: not connected` after a successful login (fixes #213)
40
+ - CLI: `connect microsoft` now forwards `--tenant_id`/`--client_id`/`--scope` (as `--scopes`) explicitly to the Teams auth flow instead of dropping flag values via `ARGV.select`
41
+
3
42
  ## [1.9.43] - 2026-06-25
4
43
 
5
44
  ### Fixed