lex-apollo 0.4.8 → 0.4.9
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 59e9aac7402ce0e7ecf6c11f6fd65ca9fbe0f23c89583b724db0a8502c290201
|
|
4
|
+
data.tar.gz: 210cc5d0b6ef7e466f0783e354dc24181be86c01c473399c18602c2729b14796
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 330d8e9902f715f934c343b83ecf44da34e01d5e93176d846fa155cad954bb8b7d8d7f2b0f817a9fc2a83fe476b18b9601114c16932b2351d8bd89a9a0b1ce10
|
|
7
|
+
data.tar.gz: 6178bfd570b0ac4e5bcf5b3e1e9dc45db26f80423487fe55ce01e96cbbfa89f857611c264a80d429cb6475c24b8649b40015c96f989531cf2404e836da0dcd75
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.9] - 2026-03-25
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- `Helpers::Writeback#write_directly` now routes through `Legion::Apollo.ingest` when the core library is loaded, falling back to `Runners::Knowledge.handle_ingest` for backward compatibility when it is not
|
|
7
|
+
|
|
3
8
|
## [0.4.8] - 2026-03-25
|
|
4
9
|
|
|
5
10
|
### Changed
|
|
@@ -77,7 +77,11 @@ module Legion
|
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
def write_directly(payload)
|
|
80
|
-
|
|
80
|
+
if defined?(Legion::Apollo)
|
|
81
|
+
Legion::Apollo.ingest(**payload)
|
|
82
|
+
else
|
|
83
|
+
Runners::Knowledge.handle_ingest(**payload)
|
|
84
|
+
end
|
|
81
85
|
rescue StandardError => e
|
|
82
86
|
Legion::Logging.warn("apollo direct write failed, falling back to transport: #{e.message}") if defined?(Legion::Logging)
|
|
83
87
|
publish_to_transport(payload, has_embedding: !payload[:embedding].nil?)
|
|
@@ -80,6 +80,68 @@ RSpec.describe Legion::Extensions::Apollo::Helpers::Writeback do
|
|
|
80
80
|
end
|
|
81
81
|
end
|
|
82
82
|
|
|
83
|
+
describe '.write_directly' do
|
|
84
|
+
let(:payload) do
|
|
85
|
+
{
|
|
86
|
+
content: 'test content for ingest',
|
|
87
|
+
tags: %w[test ruby],
|
|
88
|
+
content_type: 'observation',
|
|
89
|
+
embedding: Array.new(1024, 0.1)
|
|
90
|
+
}
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
context 'when Legion::Apollo is defined' do
|
|
94
|
+
before do
|
|
95
|
+
stub_const('Legion::Apollo', Module.new)
|
|
96
|
+
allow(Legion::Apollo).to receive(:ingest)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
it 'routes through Legion::Apollo.ingest' do
|
|
100
|
+
described_class.write_directly(payload)
|
|
101
|
+
expect(Legion::Apollo).to have_received(:ingest).with(**payload)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
it 'does not call Runners::Knowledge.handle_ingest directly' do
|
|
105
|
+
knowledge_mod = Module.new { def self.handle_ingest(**_); end }
|
|
106
|
+
stub_const('Legion::Extensions::Apollo::Runners', Module.new)
|
|
107
|
+
stub_const('Legion::Extensions::Apollo::Runners::Knowledge', knowledge_mod)
|
|
108
|
+
allow(knowledge_mod).to receive(:handle_ingest)
|
|
109
|
+
described_class.write_directly(payload)
|
|
110
|
+
expect(knowledge_mod).not_to have_received(:handle_ingest)
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
context 'when Legion::Apollo is not defined' do
|
|
115
|
+
let(:knowledge_mod) { Module.new { def self.handle_ingest(**_); end } }
|
|
116
|
+
|
|
117
|
+
before do
|
|
118
|
+
hide_const('Legion::Apollo') if defined?(Legion::Apollo)
|
|
119
|
+
stub_const('Legion::Extensions::Apollo::Runners', Module.new)
|
|
120
|
+
stub_const('Legion::Extensions::Apollo::Runners::Knowledge', knowledge_mod)
|
|
121
|
+
allow(knowledge_mod).to receive(:handle_ingest)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
it 'falls back to Runners::Knowledge.handle_ingest' do
|
|
125
|
+
described_class.write_directly(payload)
|
|
126
|
+
expect(knowledge_mod).to have_received(:handle_ingest).with(**payload)
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
context 'when an error is raised' do
|
|
131
|
+
before do
|
|
132
|
+
stub_const('Legion::Apollo', Module.new)
|
|
133
|
+
allow(Legion::Apollo).to receive(:ingest).and_raise(StandardError, 'boom')
|
|
134
|
+
allow(described_class).to receive(:publish_to_transport)
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
it 'falls back to publish_to_transport' do
|
|
138
|
+
described_class.write_directly(payload)
|
|
139
|
+
expect(described_class).to have_received(:publish_to_transport)
|
|
140
|
+
.with(payload, has_embedding: true)
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
83
145
|
describe '.content_hash' do
|
|
84
146
|
it 'produces consistent hashes for same content' do
|
|
85
147
|
hash1 = described_class.content_hash('hello world')
|