lex-agentic-self 0.1.15 → 0.1.16

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: 9353f26016962ab841ebc5b4e5d717d1ba7b94d5c6ccd9da3be8ed8c7fdeb938
4
- data.tar.gz: 5544eb5d69d9394c6f6071acfc4ea54e0a651f700f0d41ede5ac2f9e85be33bb
3
+ metadata.gz: 78fabc193208b0e2059a6f95600bd6c358abe763ee62d26da104e624d8e665ab
4
+ data.tar.gz: a606062b0f999c578120934bc4cd6486d5b4f6f80456f2b119557cf7afbd7ea0
5
5
  SHA512:
6
- metadata.gz: 125c49e963e0ed3832a81a277a4f71fe815fa7fbfbc8b264775205ea6b06085313fdfc716383b4364afcff1bdb9b2d5367904eeac1a20a93254dbbb1232b004d
7
- data.tar.gz: c5c64a7caf5080f6b0a335985ece8aefeaacdb2fccd4096408e1902ba0ab73e1c3cc0beb4658f9d3fbd72a5ccb795aa3597df0928b768f06856163edac366486
6
+ metadata.gz: 2ada4ab413f48e62b67e0ed9913db7d88b4756af102d7bc121b6b9d26905158c2d1d3dcfacfe12e914d560583e2832076ac8c178d0977344bc0b9a245a8894ae
7
+ data.tar.gz: 9695b4662b313bbce2dc7d73ca9f1b6dd12e96a18525cf1cd4dc87dada063a5fbd87e8c93fc07202f35bfe7c178b2f4501b6a98309e626ce1abf25b4183da187
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.16] - 2026-10-29
4
+ ### Fixed
5
+ - Refresh metacognitive snapshots immediately when new tick or subsystem observations arrive instead of hiding them behind the cache TTL.
6
+ - Refresh expired architecture overviews through normal introspection so newly loaded extensions appear in architecture change history.
7
+
3
8
  ## [0.1.15] - 2026-07-16
4
9
  ### Added
5
10
  - Per-partner identity fingerprint models: `CognitiveFingerprint` runner now accepts `partner_identity:` on all methods, routing each partner to an isolated `FingerprintEngine` instance via an in-memory registry.
data/README.md CHANGED
@@ -5,7 +5,7 @@ Domain consolidation gem for self-model, identity, metacognition, and self-aware
5
5
  ## Overview
6
6
 
7
7
  **Gem**: `lex-agentic-self`
8
- **Version**: 0.1.13
8
+ **Version**: 0.1.16
9
9
  **Namespace**: `Legion::Extensions::Agentic::Self`
10
10
 
11
11
  ## Sub-Modules
@@ -23,7 +23,7 @@ module Legion
23
23
  @load = 0.0
24
24
  @activation_count = 0
25
25
  @last_activated_at = nil
26
- @created_at = Time.now.utc
26
+ @created_at = Time.now.utc
27
27
  end
28
28
 
29
29
  def activate!
@@ -11,7 +11,9 @@ module Legion
11
11
  Legion::Extensions::Helpers.const_defined?(:Lex, false)
12
12
 
13
13
  def introspect(tick_results: {}, subsystem_states: {}, **)
14
- model = if snapshot_store.stale?
14
+ observed = (tick_results.is_a?(Hash) && !tick_results.empty?) ||
15
+ (subsystem_states.is_a?(Hash) && !subsystem_states.empty?)
16
+ model = if snapshot_store.stale? || observed
15
17
  fresh = Helpers::SelfModel.build(
16
18
  subsystem_states: subsystem_states,
17
19
  tick_results: tick_results
@@ -59,8 +61,7 @@ module Legion
59
61
  end
60
62
 
61
63
  def architecture_overview(**)
62
- model = snapshot_store.latest || Helpers::SelfModel.build
63
- snapshot_store.store(model) if snapshot_store.stale?
64
+ model = introspect
64
65
 
65
66
  {
66
67
  identity: model[:identity],
@@ -4,7 +4,7 @@ module Legion
4
4
  module Extensions
5
5
  module Agentic
6
6
  module Self
7
- VERSION = '0.1.15'
7
+ VERSION = '0.1.16'
8
8
  end
9
9
  end
10
10
  end
@@ -39,8 +39,8 @@ RSpec.describe Legion::Extensions::Agentic::Self::Identity::Helpers::Fingerprint
39
39
 
40
40
  def stub_local(db)
41
41
  local_mod = Module.new do
42
- define_singleton_method(:connection) { db }
43
- define_singleton_method(:connected?) { true }
42
+ define_singleton_method(:connection) { db }
43
+ define_singleton_method(:connected?) { true }
44
44
  end
45
45
  stub_const('Legion::Data', Module.new)
46
46
  stub_const('Legion::Data::Local', local_mod)
@@ -9,8 +9,8 @@ unless defined?(Legion::Logging)
9
9
  module_function
10
10
 
11
11
  def debug(*); end
12
- def info(*); end
13
- def warn(*); end
12
+ def info(*); end
13
+ def warn(*); end
14
14
  end
15
15
  end
16
16
  end
@@ -245,7 +245,7 @@ RSpec.describe Legion::Extensions::Agentic::Self::Identity::Runners::Entra do
245
245
  describe '#refresh_access_token' do
246
246
  let(:vault_secrets_mod) do
247
247
  Module.new do
248
- def self.read_client_secret(worker_id:) # rubocop:disable Lint/UnusedMethodArgument
248
+ def self.read_client_secret(**)
249
249
  { client_id: 'app-id', client_secret: 'secret-val' }
250
250
  end
251
251
  end
@@ -41,6 +41,24 @@ RSpec.describe Legion::Extensions::Agentic::Self::Metacognition::Runners::Metaco
41
41
  expect(model.dig(:cognitive, :health)).to eq(0.95)
42
42
  expect(store.size).to eq(2)
43
43
  end
44
+
45
+ it 'uses newly observed health and subsystem state before the cache expires' do
46
+ client.introspect(tick_results: tick_results, subsystem_states: { memory: { status: :healthy } })
47
+ changed = tick_results.merge(post_tick_reflection: { cognitive_health: 0.35 })
48
+
49
+ model = client.introspect(tick_results: changed, subsystem_states: { memory: { status: :degraded } })
50
+
51
+ expect(model.dig(:cognitive, :health)).to eq(0.35)
52
+ expect(client.explain_subsystem(subsystem: :memory)[:state]).to eq(status: :degraded)
53
+ expect(client.health_trend[:trend].map { |entry| entry[:health] }).to eq([0.88, 0.35])
54
+ end
55
+
56
+ it 'accepts new subsystem observations without requiring a new tick' do
57
+ client.introspect(subsystem_states: { memory: { status: :healthy } })
58
+ client.introspect(subsystem_states: { memory: { status: :degraded } })
59
+
60
+ expect(client.explain_subsystem(subsystem: :memory)[:state]).to eq(status: :degraded)
61
+ end
44
62
  end
45
63
 
46
64
  describe '#self_narrative' do
@@ -74,6 +92,19 @@ RSpec.describe Legion::Extensions::Agentic::Self::Metacognition::Runners::Metaco
74
92
  expect(result[:identity][:framework]).to eq('LegionIO')
75
93
  expect(result).to have_key(:capabilities)
76
94
  end
95
+
96
+ it 'rediscovers loaded extensions after the cached architecture expires' do
97
+ hide_const('Legion::Extensions::Curiosity') if Legion::Extensions.const_defined?(:Curiosity, false)
98
+ old = client.introspect
99
+ old[:assembled_at] = Time.now.utc - 60
100
+ stub_const('Legion::Extensions::Curiosity', Module.new)
101
+
102
+ overview = client.architecture_overview
103
+
104
+ expect(overview[:architecture][:loaded]).to include(:Curiosity)
105
+ expect(overview[:assembled_at]).to be > old[:assembled_at]
106
+ expect(client.architecture_changes[:changes].last[:added]).to include(:Curiosity)
107
+ end
77
108
  end
78
109
 
79
110
  describe '#health_trend' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-agentic-self
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ version: 0.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity