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 +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/legion/extensions/microsoft_teams/actors/cache_sync.rb +2 -3
- data/lib/legion/extensions/microsoft_teams/actors/channel_poller.rb +5 -1
- data/lib/legion/extensions/microsoft_teams/runners/api_ingest.rb +6 -3
- data/lib/legion/extensions/microsoft_teams/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a09012375cc07436aafb2c4267acd8ac9a7660d5a79055d2992ca85b079e616c
|
|
4
|
+
data.tar.gz: 25e1012b639bcf091422cf0b40e762245c07753e080e4fb190d75be7eeff2f71
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
27
|
-
|
|
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
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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
|
[]
|