lex-microsoft_teams 0.6.33 → 0.6.34

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: 723db14b8f62ab569c8f93b935fbc4717260a584c6673ca75e2f2e72c81c38ea
4
- data.tar.gz: 300dc06002ffcf6dfd3a786d3ce98be24e5853492b43f15402ecb0517eb176db
3
+ metadata.gz: a09012375cc07436aafb2c4267acd8ac9a7660d5a79055d2992ca85b079e616c
4
+ data.tar.gz: 25e1012b639bcf091422cf0b40e762245c07753e080e4fb190d75be7eeff2f71
5
5
  SHA512:
6
- metadata.gz: dc20c2e5ad9536e53245d2fce484f9ee29b94a4ef4e208a184618eff57ba2830633097f1d578bb3980c453725a651485c3492b74b6001026b64dda2db252c6d7
7
- data.tar.gz: 23dfc8be910133b1d6462094d6abe0a0c67b4c3d769a9dbe36d0cbb4535423efbd0bf96c8103b0967c7117f5956c9a506509d421df5f93aafd0f9ed37d813736
6
+ metadata.gz: f0cf0c2cc962656680b8200dfefd405b681bcd016820eb4114d4c4ef9d5e85845778418983639e5a7ce3d96e62a8b175c6f2a475c04f486378341698cb23936e
7
+ data.tar.gz: 10b2122a0681ab769270ddc19f67deb6e1701beef934e4e07af970d1675f11e7750ead02ca98111c42a08a6f0f2f472698cbb342d27526fad8852681b5958e15
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.6.34] - 2026-04-03
6
+
7
+ ### Fixed
8
+ - ApiIngest restores HWM from traces on startup to prevent re-fetching all messages on every restart
9
+ - ApiIngest now fetches 1:1, group, and meeting chats (not just oneOnOne)
10
+ - CacheSync disabled — local cache has no chat type metadata to filter channel messages
11
+ - ChannelPoller trace storage gated behind `channels.store_traces` setting (default: false)
12
+
5
13
  ## [0.6.33] - 2026-04-03
6
14
 
7
15
  ### Changed
@@ -23,9 +23,8 @@ module Legion
23
23
  def generate_task? = false
24
24
 
25
25
  def enabled?
26
- defined?(Legion::Extensions::Agentic::Memory::Trace::Runners::Traces)
27
- rescue StandardError => e
28
- log.debug("CacheSync#enabled?: #{e.message}")
26
+ # TODO: local cache has no chat type metadata — cannot filter out channel
27
+ # messages. Disabled until cache records include chatType.
29
28
  false
30
29
  end
31
30
 
@@ -126,7 +126,7 @@ module Legion
126
126
  log.info("#{team_name} / #{channel_name}: #{new_msgs.length} new message(s)")
127
127
  new_msgs.each do |msg|
128
128
  log_message(team_name: team_name, channel_name: channel_name, msg: msg)
129
- store_channel_message_trace(team_name: team_name, channel_name: channel_name, msg: msg) if memory_available?
129
+ store_channel_message_trace(team_name: team_name, channel_name: channel_name, msg: msg) if memory_available? && channel_traces_enabled?
130
130
  end
131
131
 
132
132
  latest = new_msgs.filter_map { |m| m['createdDateTime'] }.max
@@ -164,6 +164,10 @@ module Legion
164
164
  default
165
165
  end
166
166
 
167
+ def channel_traces_enabled?
168
+ channel_setting(:store_traces, false) == true
169
+ end
170
+
167
171
  def store_channel_message_trace(team_name:, channel_name:, msg:)
168
172
  sender = msg.dig('from', 'user', 'displayName') || 'Unknown'
169
173
  content = (msg.dig('body', 'content') || '').gsub(/<[^>]+>/, '').strip
@@ -25,6 +25,8 @@ module Legion
25
25
  return error_result('lex-memory not loaded') unless memory_available?
26
26
  return error_result('no token provided') unless token && !token.empty?
27
27
 
28
+ restore_hwm_from_traces
29
+
28
30
  people = fetch_top_people(token: token, top: top_people)
29
31
  log.debug("ApiIngest: fetched #{people.size} top people")
30
32
  return error_result('people endpoint denied or empty') if people.empty?
@@ -149,9 +151,10 @@ module Legion
149
151
  params = {}
150
152
  end
151
153
 
152
- one_on_one = all_chats.select { |c| c['chatType'] == 'oneOnOne' }
153
- log.info("ApiIngest: fetched #{all_chats.size} chats (#{pages} pages), #{one_on_one.size} oneOnOne")
154
- one_on_one
154
+ allowed_types = %w[oneOnOne group meeting]
155
+ filtered = all_chats.select { |c| allowed_types.include?(c['chatType']) }
156
+ log.info("ApiIngest: fetched #{all_chats.size} chats (#{pages} pages), #{filtered.size} eligible (1:1/group/meeting)")
157
+ filtered
155
158
  rescue StandardError => e
156
159
  log.warn("ApiIngest: fetch_chats failed: #{e.message}")
157
160
  []
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module MicrosoftTeams
6
- VERSION = '0.6.33'
6
+ VERSION = '0.6.34'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-microsoft_teams
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.33
4
+ version: 0.6.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity