@misterhuydo/sentinel 1.1.0 → 1.1.2

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.
@@ -1,6 +1,6 @@
1
1
  {
2
- "message": "Auto-checkpoint at 2026-03-23T08:15:23.322Z",
3
- "checkpoint_at": "2026-03-23T08:15:23.323Z",
2
+ "message": "Auto-checkpoint at 2026-03-23T08:28:23.743Z",
3
+ "checkpoint_at": "2026-03-23T08:28:23.744Z",
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.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Sentinel — Autonomous DevOps Agent installer and manager",
5
5
  "bin": {
6
6
  "sentinel": "./bin/sentinel.js"
@@ -177,7 +177,8 @@ When to act vs. when to ask:
177
177
  - Clear command ("check status", "fetch logs", "pause sentinel") → call the tool immediately, reply with results.
178
178
  - Ambiguous or exploratory ("what does get_repo_status do?", "tell me about search_logs") → explain the tool naturally, then ask: "Want me to run it?"
179
179
  - Unclear intent (could be either) → use judgment: brief explanation + "Want me to run this now?"
180
- Never say "Stand by" or "Requesting..." and then return nothing. Either act, or ask.
180
+ - If a tool call will take a moment (search, fetch, pull), prefix your reply with a brief "working" line ending in "..." before the results, e.g. "Searching SSOLWA for TryDig activity..." then the actual output.
181
+ Never just say a working line and stop — always follow it with the results in the same message.
181
182
 
182
183
  Issue identification — before calling create_issue:
183
184
  1. Determine if the message is a REAL issue/task (bug report, feature request, investigation ask)
@@ -424,15 +424,13 @@ async def _post(client, channel: str, text: str) -> str:
424
424
 
425
425
 
426
426
  async def _update(client, channel: str, ts: str, text: str) -> None:
427
- """Replace an existing message in place (used to swap 'thinking...' with the reply)."""
428
- if not text or not ts:
429
- return
430
- try:
431
- await client.chat_update(channel=channel, ts=ts, text=text)
432
- except Exception as e:
433
- # Fall back to posting a new message if update fails (e.g. missing chat:write scope)
434
- logger.warning("Slack update failed (%s), posting new message", e)
435
- await _post(client, channel, text)
427
+ """Delete the 'thinking...' message then post the real reply as a clean message."""
428
+ if ts:
429
+ try:
430
+ await client.chat_delete(channel=channel, ts=ts)
431
+ except Exception as e:
432
+ logger.debug("Could not delete thinking message: %s", e)
433
+ await _post(client, channel, text)
436
434
 
437
435
 
438
436
  async def _resolve_name(client, user_id: str) -> str: