legion-data 1.4.18 → 1.5.0

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: 4b72221cdf5567d6602fa63754684e02cd690ece98810eddc539061b9f4ae19c
4
- data.tar.gz: 9865f85a9281f562bc9d6160198193f1b0c7b00c8c9132dc7c72b70160dace9d
3
+ metadata.gz: 6508feffe4abc08fc01e58d29be2700bea7e1823ccf04b101cac181556985550
4
+ data.tar.gz: 0f0e5e4e7d890c240c1c8e5bbfc698d8390a9d4a3487e10595ff73c8a1d307d3
5
5
  SHA512:
6
- metadata.gz: '049288bc4a3b94d1430b992bb78d693517757fafadac4b65535b873eb8d3d0e3bbb4765d635388badf6df48ec302d06dfc6b04de9f54a85ec8acd805b0e90dda'
7
- data.tar.gz: 32bb5d25decd349a5dc85c08400c3e2364fca356c62d185a103ec68e47989f0ada735f5d28f1c8405ed3e41172deb8ad590b56b4b4d391ef49b14723335a9adc
6
+ metadata.gz: 1f0033ac790aa9b5e5750cfd97ad9ad43adaa129a9f5fc5c4094483d9e90141f2b23f318e202f6d1917636df860f53baccbc954404cf5d745f201e956eeca751
7
+ data.tar.gz: 78f5b3bfe6a8dd0747aaf740ceb994b051554a76160ea5e7bfd9d440ce851a9acc7cbf7ad996cce66016806b8f6aae138f691877603920072fa2d71a84daaa63
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Legion::Data Changelog
2
2
 
3
+ ## [1.5.0] - 2026-03-24
4
+
5
+ ### Fixed
6
+ - Slow query warnings now tagged with `[data][slow-query]` instead of bare timestamps
7
+ - SQL log output uses tagged Legion::Logging::Logger for consistent `[data]` prefix
8
+ - Fix Style/SymbolArray in conversations migration
9
+
3
10
  ## [1.4.18] - 2026-03-23
4
11
 
5
12
  ### Fixed
@@ -7,6 +7,31 @@ module Legion
7
7
  module Connection
8
8
  ADAPTERS = %i[sqlite mysql2 postgres].freeze
9
9
 
10
+ # Wraps a tagged Legion::Logging::Logger for Sequel's logger interface.
11
+ # Prefixes warn-level messages with [slow-query] since Sequel uses warn
12
+ # for queries exceeding log_warn_duration.
13
+ class SlowQueryLogger
14
+ def initialize(tagged_logger)
15
+ @tagged = tagged_logger
16
+ end
17
+
18
+ def warn(message)
19
+ @tagged.warn("[slow-query] #{message}")
20
+ end
21
+
22
+ def info(message)
23
+ @tagged.info(message)
24
+ end
25
+
26
+ def debug(message)
27
+ @tagged.debug(message)
28
+ end
29
+
30
+ def error(message)
31
+ @tagged.error(message)
32
+ end
33
+ end
34
+
10
35
  class << self
11
36
  attr_accessor :sequel
12
37
 
@@ -151,10 +176,15 @@ module Legion
151
176
  def configure_logging
152
177
  return if Legion::Settings[:data][:connection].nil? || Legion::Settings[:data][:connection][:log].nil?
153
178
 
154
- @sequel.logger = Legion::Logging
179
+ @sequel.logger = build_data_logger
155
180
  @sequel.sql_log_level = Legion::Settings[:data][:connection][:sql_log_level]
156
181
  @sequel.log_warn_duration = Legion::Settings[:data][:connection][:log_warn_duration]
157
182
  end
183
+
184
+ def build_data_logger
185
+ tagged = Legion::Logging::Logger.new(lex: 'data')
186
+ SlowQueryLogger.new(tagged)
187
+ end
158
188
  end
159
189
  end
160
190
  end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ Sequel.migration do
4
+ up do
5
+ create_table(:conversations) do
6
+ String :id, primary_key: true, size: 64
7
+ String :caller_identity, size: 255
8
+ String :metadata, text: true
9
+ DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP
10
+ DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP
11
+ end
12
+
13
+ create_table(:conversation_messages) do
14
+ primary_key :id
15
+ String :conversation_id, size: 64, null: false
16
+ Integer :seq, null: false
17
+ String :role, size: 32, null: false
18
+ String :content, text: true
19
+ String :provider, size: 64
20
+ String :model, size: 128
21
+ Integer :input_tokens
22
+ Integer :output_tokens
23
+ DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP
24
+
25
+ index %i[conversation_id seq], unique: true
26
+ foreign_key [:conversation_id], :conversations, key: :id
27
+ end
28
+ end
29
+
30
+ down do
31
+ drop_table(:conversation_messages)
32
+ drop_table(:conversations)
33
+ end
34
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Legion
4
4
  module Data
5
- VERSION = '1.4.18'
5
+ VERSION = '1.5.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.18
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
@@ -136,6 +136,7 @@ files:
136
136
  - lib/legion/data/migrations/035_add_apollo_source_channel.rb
137
137
  - lib/legion/data/migrations/036_add_audit_context_snapshot.rb
138
138
  - lib/legion/data/migrations/037_add_apollo_knowledge_domain.rb
139
+ - lib/legion/data/migrations/038_add_conversations.rb
139
140
  - lib/legion/data/model.rb
140
141
  - lib/legion/data/models/apollo_access_log.rb
141
142
  - lib/legion/data/models/apollo_entry.rb