@misterhuydo/sentinel 1.1.9 → 1.2.0
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 +1 -1
- package/.cairn/session.json +2 -2
- package/package.json +1 -1
- package/python/sentinel/sentinel_boss.py +21 -2
package/.cairn/.hint-lock
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2026-03-
|
|
1
|
+
2026-03-23T09:25:27.661Z
|
package/.cairn/session.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"message": "Auto-checkpoint at 2026-03-23T09:
|
|
3
|
-
"checkpoint_at": "2026-03-23T09:
|
|
2
|
+
"message": "Auto-checkpoint at 2026-03-23T09:22:14.601Z",
|
|
3
|
+
"checkpoint_at": "2026-03-23T09:22:14.603Z",
|
|
4
4
|
"active_files": [],
|
|
5
5
|
"notes": [],
|
|
6
6
|
"mtime_snapshot": {}
|
package/package.json
CHANGED
|
@@ -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.
|
|
204
|
+
3. ALWAYS populate the `findings` field with evidence from this session:
|
|
205
|
+
- If you ran search_logs, tail_log, ask_codebase, or get_status before creating the issue,
|
|
206
|
+
include the relevant results (log excerpts, error counts, timestamps, stack traces, etc.).
|
|
207
|
+
- The fix engine reads only the issue file — it has no access to the conversation.
|
|
208
|
+
Everything it needs to understand and fix the problem must be in the file.
|
|
209
|
+
- A `description` with no evidence forces the fix engine to guess. Always attach what you found.
|
|
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
|
-
|
|
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
|
+
"Evidence gathered during this session: log excerpts, search results, "
|
|
280
|
+
"stack traces, error counts, timestamps — anything from tool calls that "
|
|
281
|
+
"is relevant to the issue. Include this whenever you ran search_logs, "
|
|
282
|
+
"tail_log, ask_codebase, or get_status before creating the issue. "
|
|
283
|
+
"The fix engine reads the issue file and needs this context to act."
|
|
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)
|