legion-settings 1.4.0 → 1.4.2
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 +15 -0
- data/lib/legion/settings/schema.rb +2 -2
- data/lib/legion/settings/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 01a0643f5091d9faedff907a6fc0cec207522970608d3b06b75030d85953d159
|
|
4
|
+
data.tar.gz: 3dacab16c187e733d10b16d04ad945eaa034a27dc71a6d42f738379c488976d7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3229d7d05ec8f457c6a8a871552fe2f50bfd092afac42fcb14f505754c6b35d314eb813783f53d66e7ed84bbfa2c7ea0ab4adbbfafb6451c84b393a5695956b8
|
|
7
|
+
data.tar.gz: 0df58dd5227d34447dd04610c28bcaeb8cf27c3dfddca0c6fbf898c404ce572b8776323944fb605f654eeb2d2b237e4db2940f871267efe1063a32571df7db3c
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Legion::Settings Changelog
|
|
2
2
|
|
|
3
|
+
## [1.4.2] - 2026-08-14
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- `Legion::Settings::Helper#settings` now resolves two-segment (nested) extensions to their nested settings path instead of a flat key. `lex-llm-vllm` (`Legion::Extensions::Llm::Vllm::Runners::DiscoveryRefresh`) resolves to `Legion::Settings[:extensions][:llm][:vllm]` — not the flat `:llm_vllm` key — and `lex-identity-entra` (`Legion::Extensions::Identity::Entra::Delegated::Runners::Login`) resolves to `[:extensions][:identity][:entra]`. All `lex-<a>-<b>` nested extensions (lex-llm-*, lex-identity-*, lex-agentic-*, etc.) were reading the wrong (empty) settings path in production; single-segment `lex-<name>` extensions were unaffected.
|
|
7
|
+
- Resolution is now segment-based: an explicit `segments` method (LegionIO's `Helpers::Base` mixin) is preferred; otherwise segments are derived from the class namespace, stopping at boundary words (Actor/Actors/Runners/Helpers/Transport/Data), with the gem boundary verified against the `Legion::Settings::Extensions` registry. Sub-module runners resolve to their parent gem's settings.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- Regression spec in `spec/legion/settings/helper_spec.rb` covering nested two-segment runner resolution (lex-llm-vllm, lex-identity-entra) that fails on the 1.4.0 flat-key helper.
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- `Settings#[]` and `Settings#dig` read the settings hash directly with string→symbol key fallback instead of rebuilding an indifferent-access hash tree on every read (`indifferent_access!` now only runs on explicit `to_hash` calls) — removes the boot-time O(n) rebuild per read.
|
|
14
|
+
- Overlay skips resolution when no overlay is active (fast path).
|
|
15
|
+
- Consolidated four duplicate deep-merge implementations into a shared `Legion::Settings::DeepMerge` module that preserves `Concurrent::Hash` type through merges.
|
|
16
|
+
- FQDN is lazy-resolved on first access instead of blocking at init; schema validation is deferred to `validate!` instead of running on every merge.
|
|
17
|
+
|
|
3
18
|
## [1.4.0] - 2026-04-29
|
|
4
19
|
|
|
5
20
|
### Added
|
|
@@ -181,8 +181,8 @@ module Legion
|
|
|
181
181
|
def find_similar(key, candidates)
|
|
182
182
|
key_str = key.to_s
|
|
183
183
|
candidates.map(&:to_s).select { |c| levenshtein(key_str, c) <= 2 }
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
.min_by { |c| levenshtein(key_str, c) }
|
|
185
|
+
&.to_sym
|
|
186
186
|
end
|
|
187
187
|
|
|
188
188
|
def levenshtein(str_a, str_b)
|