@integrity-labs/agt-cli 0.28.315 → 0.28.317

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.
@@ -14826,11 +14826,14 @@ function decideAckReaction(i) {
14826
14826
  function normalizeReactionName(emoji2) {
14827
14827
  return emoji2.trim().replace(/^:+|:+$/g, "").toLowerCase();
14828
14828
  }
14829
- function skipReactionShouldRetractAck(emoji2, skipReaction, ackReaction) {
14829
+ function isConfiguredSkipReaction(emoji2, skipReaction) {
14830
14830
  const skip = normalizeReactionName(skipReaction);
14831
14831
  if (!skip) return false;
14832
- if (normalizeReactionName(emoji2) !== skip) return false;
14833
- return normalizeReactionName(ackReaction) !== skip;
14832
+ return normalizeReactionName(emoji2) === skip;
14833
+ }
14834
+ function skipReactionShouldRetractAck(emoji2, skipReaction, ackReaction) {
14835
+ if (!isConfiguredSkipReaction(emoji2, skipReaction)) return false;
14836
+ return normalizeReactionName(ackReaction) !== normalizeReactionName(skipReaction);
14834
14837
  }
14835
14838
  function classifyUndeliverableCause(i) {
14836
14839
  if (!i.hasTarget) return null;
@@ -16458,6 +16461,10 @@ import { createHash as createHash2, randomUUID as randomUUID2 } from "crypto";
16458
16461
  // src/slack-thread-store.ts
16459
16462
  import { mkdirSync as mkdirSync3, readFileSync as readFileSync5, writeFileSync as writeFileSync4 } from "fs";
16460
16463
  import { dirname as dirname2 } from "path";
16464
+ function isParticipatingThread(entry) {
16465
+ if (!entry) return false;
16466
+ return entry.bot_posted === true || entry.involvement === "mentioned" || entry.involvement === "started";
16467
+ }
16461
16468
  var FILE_VERSION = 1;
16462
16469
  var DEFAULT_TTL_DAYS = 30;
16463
16470
  var DEFAULT_MIN_INTERVAL_MS = 1e3;
@@ -20953,14 +20960,18 @@ mcp.setRequestHandler(CallToolRequestSchema, async (req) => {
20953
20960
  mode: bindingMode,
20954
20961
  args: { inbound_id, channel, thread_ts, message_ts, proactive },
20955
20962
  registry: slackInboundRegistry,
20956
- // ENG-7409: the persisted bot_posted thread-participation signal (survives
20957
- // restart via loadThreadStore). A reply into a thread the agent has posted
20958
- // in is a legitimate follow-up, so it must not be flagged unknown_target
20959
- // even when no live inbound marker survives - this is what stops warn from
20960
- // nagging (and enforce from blocking) ordinary in-thread conversation.
20963
+ // ENG-7409 + ENG-7782: the persisted thread-participation signal (survives
20964
+ // restart via loadThreadStore). A reply into a thread the agent has posted in
20965
+ // (bot_posted) OR was @-mentioned into / owns the root of (involvement) is a
20966
+ // legitimate follow-up, so it must not be flagged unknown_target even when no
20967
+ // live inbound marker survives - this is what stops warn from nagging (and
20968
+ // enforce from blocking) ordinary in-thread conversation. Keying on bot_posted
20969
+ // ALONE previously deadlocked the FIRST reply into a mention-followed thread
20970
+ // (bot_posted is only set after a successful reply), which enforce blocked as
20971
+ // unknown_target - see isParticipatingThread.
20961
20972
  knownThread: (c, t) => {
20962
20973
  const k = buildThreadKey(c, t);
20963
- return !!k && !!trackedThreads.get(k)?.bot_posted;
20974
+ return !!k && isParticipatingThread(trackedThreads.get(k));
20964
20975
  }
20965
20976
  });
20966
20977
  recordReplyBindingClassification(SLACK_AGENT_DIR, "slack", {
@@ -21175,7 +21186,12 @@ mcp.setRequestHandler(CallToolRequestSchema, async (req) => {
21175
21186
  isError: true
21176
21187
  };
21177
21188
  }
21178
- noteThreadActivityByMessageTs(channel, timestamp);
21189
+ if (isConfiguredSkipReaction(emoji2, SLACK_SKIP_REACTION)) {
21190
+ clearAllSlackPendingMarkersForThread2(channel, timestamp);
21191
+ clearSlackPendingMarkerByMessageTs2(channel, timestamp);
21192
+ } else {
21193
+ noteThreadActivityByMessageTs(channel, timestamp);
21194
+ }
21179
21195
  if (skipReactionShouldRetractAck(emoji2, SLACK_SKIP_REACTION, SLACK_ACK_REACTION)) {
21180
21196
  fetch("https://slack.com/api/reactions.remove", {
21181
21197
  method: "POST",
@@ -36,7 +36,7 @@ import {
36
36
  writeDirectChatSessionState,
37
37
  writeEgressAllowlist,
38
38
  writePersistentClaudeWrapper
39
- } from "./chunk-H6GG7WM3.js";
39
+ } from "./chunk-ORTMG5E3.js";
40
40
  import "./chunk-XWVM4KPK.js";
41
41
  export {
42
42
  EGRESS_BASELINE_DOMAINS,
@@ -77,4 +77,4 @@ export {
77
77
  writeEgressAllowlist,
78
78
  writePersistentClaudeWrapper
79
79
  };
80
- //# sourceMappingURL=persistent-session-OYVPR4R3.js.map
80
+ //# sourceMappingURL=persistent-session-UZNQVUYB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-H6GG7WM3.js";
3
+ } from "./chunk-ORTMG5E3.js";
4
4
  import "./chunk-XWVM4KPK.js";
5
5
 
6
6
  // src/lib/responsiveness-probe.ts
@@ -427,4 +427,4 @@ export {
427
427
  readAndResetSlackReplyBindingClassifications,
428
428
  readAndResetSlackReplyTargetClassifications
429
429
  };
430
- //# sourceMappingURL=responsiveness-probe-DFQFCUN2.js.map
430
+ //# sourceMappingURL=responsiveness-probe-5XF7ZCYF.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.315",
3
+ "version": "0.28.317",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {