@misterhuydo/sentinel 1.1.9 → 1.2.1

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-23T08:53:23.129Z
1
+ 2026-03-23T09:25:27.661Z
@@ -1,6 +1,6 @@
1
1
  {
2
- "message": "Auto-checkpoint at 2026-03-23T09:20:28.044Z",
3
- "checkpoint_at": "2026-03-23T09:20:28.045Z",
2
+ "message": "Auto-checkpoint at 2026-03-23T09:27:13.974Z",
3
+ "checkpoint_at": "2026-03-23T09:27:13.976Z",
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.9",
3
+ "version": "1.2.1",
4
4
  "description": "Sentinel — Autonomous DevOps Agent installer and manager",
5
5
  "bin": {
6
6
  "sentinel": "./bin/sentinel.js"
@@ -201,12 +201,18 @@ Issue identification — before calling create_issue:
201
201
  - Attachments: summarise any files/screenshots the user shared.
202
202
  - Support URL: note any ticket/doc/link the user mentioned.
203
203
  - Identity: always captured automatically from the Slack session.
204
- 3. Before calling the tool, confirm with the user in natural language:
204
+ 3. Populate `findings` with curated evidence only when relevant and concise:
205
+ - If you ran search_logs, tail_log, ask_codebase, or get_status before creating the issue,
206
+ summarise only the findings directly related to this specific issue.
207
+ - Do NOT paste raw tool output. Summarise: which services, how often, key pattern, 1-3 example lines.
208
+ - If the search returned nothing relevant, or the issue is purely user-described with no log evidence, leave `findings` empty.
209
+ - The fix engine reads only the issue file. Give it signal, not noise — 500 words max.
210
+ 4. Before calling the tool, confirm with the user in natural language:
205
211
  e.g. "I'll create an issue for project *1881* — here's what I have: [summary]. Look right?"
206
212
  Wait for their confirmation before proceeding.
207
213
  EXCEPTION: if the user's message already contains a clear project + unambiguous description,
208
214
  skip the confirmation and create immediately — don't ask when nothing is unclear.
209
- 4. After creating, tell them the issue was queued and Sentinel will pick it up on the next poll.
215
+ 5. After creating, tell them the issue was queued and Sentinel will pick it up on the next poll.
210
216
 
211
217
  When the engineer's request is fully handled, end your LAST message with the token: [DONE]
212
218
  IMPORTANT: Always write your actual reply text FIRST, then append [DONE] at the end. Example: "Hello! I'm Sentinel. [DONE]". Never output [DONE] as your only content.
@@ -267,6 +273,16 @@ _TOOLS = [
267
273
  "type": "string",
268
274
  "description": "Summary of any files/screenshots the user attached",
269
275
  },
276
+ "findings": {
277
+ "type": "string",
278
+ "description": (
279
+ "A concise, curated summary of evidence directly relevant to this issue — "
280
+ "NOT raw tool output. Include only what the fix engine needs: "
281
+ "key error patterns, affected services, approximate frequency/timestamps, "
282
+ "and 1-3 representative log lines. Omit unrelated results. "
283
+ "Keep under 500 words. Leave empty if no tool results are relevant."
284
+ ),
285
+ },
270
286
  },
271
287
  "required": ["description"],
272
288
  },
@@ -949,6 +965,7 @@ async def _run_tool(name: str, inputs: dict, cfg_loader, store, slack_client=Non
949
965
 
950
966
  support_url = inputs.get("support_url", "").strip()
951
967
  attachments_summary = inputs.get("attachments_summary", "").strip()
968
+ findings = inputs.get("findings", "").strip()
952
969
 
953
970
  issues_dir = project_dir / "issues"
954
971
  issues_dir.mkdir(exist_ok=True)
@@ -966,6 +983,8 @@ async def _run_tool(name: str, inputs: dict, cfg_loader, store, slack_client=Non
966
983
  lines.append(f"SUBMITTED_AT: {datetime.now(timezone.utc).isoformat()}")
967
984
  lines.append("")
968
985
  lines.append(description)
986
+ if findings:
987
+ lines.append(f"\nEVIDENCE (gathered by Sentinel Boss):\n{findings}")
969
988
  if attachments_summary:
970
989
  lines.append(f"\nATTACHMENTS:\n{attachments_summary}")
971
990
  content = "\n".join(lines)