@misterhuydo/sentinel 1.4.46 → 1.4.48

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.
package/.cairn/.hint-lock CHANGED
@@ -1 +1 @@
1
- 2026-03-25T10:49:00.064Z
1
+ 2026-03-25T11:19:33.099Z
@@ -1,6 +1,6 @@
1
1
  {
2
- "message": "Auto-checkpoint at 2026-03-25T10:49:12.879Z",
3
- "checkpoint_at": "2026-03-25T10:49:12.881Z",
2
+ "message": "Auto-checkpoint at 2026-03-25T11:16:59.180Z",
3
+ "checkpoint_at": "2026-03-25T11:16:59.181Z",
4
4
  "active_files": [],
5
5
  "notes": [],
6
6
  "mtime_snapshot": {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@misterhuydo/sentinel",
3
- "version": "1.4.46",
3
+ "version": "1.4.48",
4
4
  "description": "Sentinel — Autonomous DevOps Agent installer and manager",
5
5
  "bin": {
6
6
  "sentinel": "./bin/sentinel.js"
@@ -82,12 +82,12 @@ def apply_and_commit(
82
82
  logger.error("git pull failed for %s:\n%s", repo.repo_name, r.stderr)
83
83
  return "failed", ""
84
84
 
85
- r = _git(["apply", "--check", str(patch_path)], cwd=local_path, env=env)
85
+ r = _git(["apply", "--check", "--ignore-whitespace", str(patch_path)], cwd=local_path, env=env)
86
86
  if r.returncode != 0:
87
87
  logger.error("Patch dry-run failed for %s:\n%s", event.fingerprint, r.stderr)
88
88
  return "failed", ""
89
89
 
90
- r = _git(["apply", str(patch_path)], cwd=local_path, env=env)
90
+ r = _git(["apply", "--ignore-whitespace", str(patch_path)], cwd=local_path, env=env)
91
91
  if r.returncode != 0:
92
92
  logger.error("git apply failed for %s:\n%s", event.fingerprint, r.stderr)
93
93
  return "failed", ""
@@ -145,11 +145,12 @@ async def run_slack_bot(cfg_loader, store) -> None:
145
145
  await _dispatch(event, client, cfg_loader, store)
146
146
  return
147
147
 
148
- # Thread replies in channels — route to Boss if the user has an active session
149
- # (so the user can reply "yes" / "go ahead" without typing @Sentinel each time)
148
+ # Thread replies in channels — route to Boss without requiring @mention
149
+ # (so the user can reply "yes" / "go ahead" in a thread without typing @Sentinel)
150
150
  if event.get("thread_ts") and not event.get("subtype"):
151
151
  user_id = event.get("user", "")
152
- if user_id and user_id in _sessions:
152
+ allowed = cfg_loader.sentinel.slack_allowed_users
153
+ if user_id and (not allowed or user_id in allowed):
153
154
  await _dispatch(event, client, cfg_loader, store)
154
155
 
155
156
  # ── Start ─────────────────────────────────────────────────────────────────