@misterhuydo/sentinel 1.6.3 → 1.6.5

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-04-24T11:26:01.385Z
1
+ 2026-04-24T12:01:49.183Z
@@ -1,6 +1,6 @@
1
1
  {
2
- "message": "Auto-checkpoint at 2026-04-24T11:34:54.330Z",
3
- "checkpoint_at": "2026-04-24T11:34:54.331Z",
2
+ "message": "Auto-checkpoint at 2026-04-24T12:19:55.468Z",
3
+ "checkpoint_at": "2026-04-24T12:19:55.470Z",
4
4
  "active_files": [
5
5
  "J:\\Projects\\Sentinel\\cli\\bin\\sentinel.js",
6
6
  "J:\\Projects\\Sentinel\\cli\\lib\\test.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@misterhuydo/sentinel",
3
- "version": "1.6.3",
3
+ "version": "1.6.5",
4
4
  "description": "Sentinel — Autonomous DevOps Agent installer and manager",
5
5
  "bin": {
6
6
  "sentinel": "./bin/sentinel.js"
@@ -1 +1 @@
1
- __version__ = "1.6.3"
1
+ __version__ = "1.6.5"
@@ -220,10 +220,11 @@ def _build_prompt(
220
220
  " BOSS_ESCALATE: <description of what needs to change in Sentinel>",
221
221
  " This escalates to Patch, the Sentinel dev agent, who will implement it.",
222
222
  "",
223
- "FINAL STEP checkpoint cairn",
224
- "10. Before you stop, call the `cairn_checkpoint` MCP tool with a one-line summary",
225
- " of what you changed (e.g. \"Broaden FirstName regex; bump consumer to 2.7.1\").",
226
- " This lets the next session resume with full context of prior fixes.",
223
+ "CRITICAL — your FINAL message must be the patch itself",
224
+ " The unified diff (with the `# Affected repos:` header for multi-repo) MUST be",
225
+ " the very last text you emit. Do NOT call any tool (including cairn_checkpoint)",
226
+ " after the diff Sentinel only reads the FINAL assistant message and a trailing",
227
+ " tool call leaves the result field empty.",
227
228
  ]
228
229
  return "\n".join(lines_out)
229
230
 
@@ -263,12 +263,12 @@ def apply_and_commit(
263
263
  logger.error("git pull failed for %s:\n%s", repo.repo_name, r.stderr)
264
264
  return "failed", ""
265
265
 
266
- r = _git(["apply", "--check", "--ignore-whitespace", str(patch_path)], cwd=local_path, env=env)
266
+ r = _git(["apply", "--check", "--recount", "--ignore-whitespace", str(patch_path)], cwd=local_path, env=env)
267
267
  if r.returncode != 0:
268
268
  logger.error("Patch dry-run failed for %s:\n%s", event.fingerprint, r.stderr)
269
269
  return "failed", ""
270
270
 
271
- r = _git(["apply", "--ignore-whitespace", str(patch_path)], cwd=local_path, env=env)
271
+ r = _git(["apply", "--recount", "--ignore-whitespace", str(patch_path)], cwd=local_path, env=env)
272
272
  if r.returncode != 0:
273
273
  logger.error("git apply failed for %s:\n%s", event.fingerprint, r.stderr)
274
274
  return "failed", ""
@@ -377,7 +377,7 @@ def apply_and_commit_multi(
377
377
  dry_run_failures.append(f"{name}: git pull failed: {r.stderr.strip()[:200]}")
378
378
  continue
379
379
  # Dry-run
380
- r = _git(["apply", "--check", "--ignore-whitespace", str(sub_path)],
380
+ r = _git(["apply", "--check", "--recount", "--ignore-whitespace", str(sub_path)],
381
381
  cwd=repo.local_path, env=env)
382
382
  if r.returncode != 0:
383
383
  dry_run_failures.append(f"{name}: dry-run failed: {r.stderr.strip()[:200]}")
@@ -409,7 +409,7 @@ def apply_and_commit_multi(
409
409
  "reason": "", "sub_patch_path": sub_path,
410
410
  }
411
411
 
412
- r = _git(["apply", "--ignore-whitespace", str(sub_path)],
412
+ r = _git(["apply", "--recount", "--ignore-whitespace", str(sub_path)],
413
413
  cwd=repo.local_path, env=env)
414
414
  if r.returncode != 0:
415
415
  entry["reason"] = f"apply failed: {r.stderr.strip()[:200]}"