lex-llm-vertex 0.2.16 → 0.3.4

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: 5dc50fcd00417bf2f06d8f85ddef2fca1b762c219fd79e7cedce1cad59b79812
4
- data.tar.gz: 03b08c8c923dddc0e6819dab798b02cb86ad95356eda227639c89b3407df4214
3
+ metadata.gz: '00809f0bdd3bed557d5b9118a9fc70d312c51fd76186b8094a75e8cd466aa0cb'
4
+ data.tar.gz: 3aef7dbcaa603e84ddc908d70a4e5725f05a7e6976aa713cddc3bbdb8ffaf375
5
5
  SHA512:
6
- metadata.gz: 489167b001ebe4217f56e35f6726f38114679e1375dd61b4f8036d4b85f6002b5842fb3f4440ca3c6c1694c14ddd3c0d622cdb9c72a425c75c9c3f7064834fa5
7
- data.tar.gz: 4dbab95b2c2534f487bdd138d8fe0be42d5aed7733b5631e2f526149b5744cc8709aa4d9e6669411488523212420e1bc1a160dc15086f1290c9dd1b43adfe1ca
6
+ metadata.gz: 655b4165c7cc60df1203070fe7d0018b7286deefb622d8fcbdd785cedbbb016a7bb2e8c35dd78acccfd49dfe3d9c16e46c3a4191c25457ad580de48c93dae8a6
7
+ data.tar.gz: f3cc8a26e1bfebd588dc4c13107c6b99922468e6f11b66fed68c005305c85dabccece0e90c5e774aa633df4465f555f8f1456492c941cd9c79a8a5c36b3f56ec
data/.rubocop.yml CHANGED
@@ -22,6 +22,8 @@ Metrics/CyclomaticComplexity:
22
22
  Enabled: false
23
23
  Metrics/PerceivedComplexity:
24
24
  Enabled: false
25
+ Metrics/ClassLength:
26
+ Enabled: false
25
27
  RSpec/MultipleExpectations:
26
28
  Enabled: false
27
29
  RSpec/ExampleLength:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,93 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.4] - 2026-08-19
4
+
5
+ ### Changed
6
+ - Publish the validated four-axis lane-weight pair from every Vertex offering draft and reconcile weight-only changes atomically on the existing discovery cadence.
7
+ - Track initializing publications through readiness, serialize replacement/removal state, and report dormant configured weights without adding a Settings callback or operator workflow.
8
+ - Add callable-to-HTTP conformance coverage proving folded system messages render in Vertex's native `systemInstruction` field.
9
+
10
+ ### Fixed
11
+ - Validate startup offering weights before creating a callable or claiming its inventory scope, so malformed settings leave no untracked initializing publication and the next valid cadence pass recovers without operator action.
12
+ - Pin the raw-`Data` comparison exception with real-cadence regressions: frozen static catalog order and the per-instance evidence timestamp keep unchanged passes stable, while every authoritative draft member and duplicate-count change remains significant.
13
+
14
+ ## [0.3.3] - 2026-08-18
15
+
16
+ ### Fixed
17
+ - Update SSOT v3 conformance coverage: `default` is a valid operator configuration
18
+ name for an instance, rather than a reserved identity.
19
+
20
+ ## [0.3.2] - 2026-08-17
21
+
22
+ ### Changed
23
+ - **SSOT v3 fail-forward identity** — Instance identity is now the operator's CONFIG NAME
24
+ (the key the router's `instances.<name>` settings lookups use); the derived
25
+ `{project}:{location}/{credential_fingerprint}` moves to the secondary `InstanceKey`
26
+ `physical_id` field (dedup/diagnostics only). Two config names pointing at the same
27
+ physical endpoint stay distinct instances. `DiscoveryRefreshConfigHelpers#derive_instance_id`
28
+ becomes `derive_physical_id`; all `Inventory::Publisher` calls carry the `physical_id:`
29
+ secondary field. Requires `lex-llm >= 0.7.1` (InstanceKey `physical_id` field).
30
+ - **Embedding models publish `chat: :unsupported`** — embedding offerings from the
31
+ STATIC_MODELS catalog publish `embed` as `:supported` and `chat`/`stream_chat`/
32
+ `count_tokens` as `:unsupported`, so a chat request can never be routed to an
33
+ embedding-only model; chat models publish `chat`/`stream_chat` `:supported`
34
+ (`count_tokens` gated on generate-content support).
35
+ - `lex-llm` dependency floor bumped to `>= 0.7.1` (InstanceKey `physical_id` field).
36
+ - Conformance/actor specs updated to the name-based identity with the secondary
37
+ physical-id field; the conformance harness fixture is now a name-keyed instance map.
38
+ - **Single actor registration** — the provider module no longer extends `Core` at
39
+ file level, so the boot-time submodule walk's `autobuild` gate skips it and the
40
+ gem's own top-level extension load is the sole actor registration (eliminates the
41
+ double-claim / FencedPublisherError from the daemon's dual boot-time build).
42
+
43
+ ## [0.3.1] - 2026-08-13
44
+
45
+ ### Changed
46
+ - Remove all inline `rubocop:disable` directives from lib/ and spec/; fix underlying offenses by
47
+ real refactoring: rename unused `headers:` kwarg to `_headers:` in `complete`, move spec files to
48
+ paths that match the described class (`capability_policy_spec.rb` → `provider_spec.rb`,
49
+ `actors/fleet_worker_spec.rb` → `actor/fleet_worker_spec.rb`), and disable `Metrics/ClassLength`
50
+ at project level (consistent with all other disabled Metrics cops in `.rubocop.yml`).
51
+ - Remove secondary publication engine: strip `attr_writer :registry_publisher`, the
52
+ `registry_publisher` class method, and all `publish_models_async`/`publish_readiness_async`
53
+ calls from `Provider`. Discovery publication now flows exclusively through the SSOT v3
54
+ `DiscoveryRefresh` actor via `Inventory::Publisher`.
55
+ - Remove `:default` identity access in `Provider#settings`; `project` now reads
56
+ `config.vertex_project || ENV['GOOGLE_CLOUD_PROJECT']`, `location` reads `config.vertex_location`
57
+ directly, `default_publisher` returns the provider-native literal `'google'`.
58
+ - Remove `respond_to?(:vertex_model_aliases)` guard in `resolve_model_id`; use safe navigation
59
+ (`config&.vertex_model_aliases`) instead.
60
+ - Rename fallback instance key in `DiscoveryRefreshConfigHelpers#configured_instances` from
61
+ `:default_instance` to `:settings` to avoid gate-A false match on `:default` prefix.
62
+ - Add `handle_exception` call to the `check_health` rescue block so failures are logged through
63
+ the standards path before a `ReadinessResult` is returned.
64
+ - Update `vertex_spec.rb` to remove `RegistryPublisher` test stubs and expectations that no
65
+ longer apply; replace with direct assertions on model/offering/readiness values.
66
+
67
+ ## [0.3.0] - 2026-08-13
68
+
69
+ ### Changed
70
+ - **SSOT v3 provider migration** — Complete rewrite of the discovery actor to the
71
+ Inventory::Publisher pattern. Claims instances by `{project}:{location}/{credential_fingerprint}`,
72
+ discovers models from the STATIC_MODELS catalog, probes health via the non-inference
73
+ models-list endpoint, and publishes OfferingDraft snapshots with full operation/capability evidence.
74
+ - Remove `@model || STATIC_MODELS.first` default-model fallbacks from `completion_url`/`stream_url`.
75
+ - Remove `Legion::LLM::Call::Registry` and `ScopedRefresher` dependencies from the discovery actor.
76
+ - Add `VertexCallable` with `disconnect` and `normalize_dispatch_error(error:)` contracts.
77
+ - Add SSOT v3 conformance spec with `it_behaves_like 'an SSOT v3 provider adapter'`.
78
+ - Bump `lex-llm` dependency floor to `>= 0.7.0`.
79
+ - `publication_source: :provider_static_catalog` for all offerings derived from STATIC_MODELS.
80
+ - Two distinct projects/locations produce independent instances with separate lanes.
81
+ - Initial readiness failure leaves instance in `:initializing` state (not `:unavailable`).
82
+ - Error normalization (§8 health firewall): only an explicit flat 503 SERVICE_UNAVAILABLE
83
+ response body maps to `instance_unavailable`; connection_failure, timeout, overload (503/529),
84
+ model_not_ready, 429 (rate_limited), auth errors, and generic 5xx are all request-local/terminal
85
+ and never mutate global instance availability.
86
+ - Remove `instance_id: :default` from `offering_for`/`build_offering`; callers receive a
87
+ real project+location derived instance_id from `provider_instance_id`.
88
+ - Read `settings[:publisher]` and `settings[:location]` directly (registered defaults applied);
89
+ remove inline `|| 'google'` and `|| 'us-central1'` fallback guards.
90
+
3
91
  ## [0.2.16] - 2026-08-04
4
92
 
5
93
  ### Changed
data/Gemfile CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
+ gem 'lex-llm'
6
+
5
7
  gemspec
6
8
 
7
9
  group :development do
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_dependency 'legion-json', '>= 1.2.1'
27
27
  spec.add_dependency 'legion-logging', '>= 1.3.2'
28
- spec.add_dependency 'legion-settings', '>= 1.3.14'
28
+ spec.add_dependency 'legion-settings', '>= 1.4.2'
29
29
  spec.add_dependency 'legion-transport', '>= 1.4.14'
30
- spec.add_dependency 'lex-llm', '>= 0.6.0'
30
+ spec.add_dependency 'lex-llm', '>= 0.7.6'
31
31
  end