cli-jaw 2.17.5-preview.20260819090409 → 2.17.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cli-jaw",
3
- "version": "2.17.5-preview.20260819090409",
3
+ "version": "2.17.5",
4
4
  "description": "Personal AI assistant powered by Pi, Antigravity, AI-E, Claude, Claude E, Codex, Codex App, Cursor, Grok, Kiro, OpenCode, and Copilot — Web, Terminal, Telegram, and Discord interfaces with 107 built-in skills",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -104,7 +104,27 @@ PR_URL="$(gh pr create \
104
104
  --title "chore: promote v$STABLE_VERSION" \
105
105
  --body "Promotes certified preview $PREVIEW_VERSION at $PREVIEW_SHA. Tests: $TESTS_URL")"
106
106
 
107
- gh pr checks "$PR_URL" --required --watch --fail-fast
107
+ # GitHub materializes required checks on a fresh PR asynchronously; when
108
+ # `--watch` lands in that window it exits immediately with "no checks
109
+ # reported" / "no required checks reported" and the whole promotion dies
110
+ # (observed: PRs #386-#388, killed while checks were queueing). The required
111
+ # context here is ci-aggregate, which is REPORTED ONLY AFTER node-tests
112
+ # finishes (~7-8 min), so the deadline must comfortably exceed a full test.yml
113
+ # run, not just the registration lag. Retry the watch while that startup
114
+ # condition holds; real check failures still fail fast.
115
+ CHECKS_DEADLINE=$((SECONDS + 1800))
116
+ while true; do
117
+ CHECKS_STATUS=0
118
+ CHECKS_OUTPUT="$(gh pr checks "$PR_URL" --required --watch --fail-fast 2>&1)" || CHECKS_STATUS=$?
119
+ printf '%s\n' "$CHECKS_OUTPUT"
120
+ [ "$CHECKS_STATUS" -eq 0 ] && break
121
+ if printf '%s' "$CHECKS_OUTPUT" | grep -qiE 'no (required )?checks reported' \
122
+ && [ "$SECONDS" -lt "$CHECKS_DEADLINE" ]; then
123
+ sleep 15
124
+ continue
125
+ fi
126
+ exit "$CHECKS_STATUS"
127
+ done
108
128
  gh pr merge "$PR_URL" --squash --match-head-commit "$PROMOTION_COMMIT"
109
129
  # From here the branch belongs to GitHub's delete_branch_on_merge. Racing that
110
130
  # auto-delete only produces confusing errors, and a later verification failure
@@ -412,12 +412,18 @@ if (!macosEvidence || !wslEvidence) {
412
412
  'run', 'list',
413
413
  '--workflow', 'postinstall-platform.yml',
414
414
  '--commit', headSha,
415
- '--event', 'push',
416
415
  '--status', 'success',
417
416
  '--limit', '1',
418
417
  '--json', 'url',
419
418
  '--jq', '.[0].url // ""',
420
419
  ], { cwd: repoRoot, encoding: 'utf8', shell: false });
420
+ // No --event filter, mirroring bc7c19ba which already made publish.yml
421
+ // accept any-event Postinstall Platform Checks. A merge commit whose diff
422
+ // is empty (e.g. main merged back into preview after a promotion) never
423
+ // produces a push run for its own SHA, so requiring the push event made
424
+ // this gate unpassable for exactly the SHA a promotion certifies. Any
425
+ // successful run of the pinned workflow on this commit is the same
426
+ // evidence regardless of the event that started it.
421
427
  const ciUrl = (ciCheck.stdout || '').trim();
422
428
  if (ciUrl) {
423
429
  console.log(`[release-evidence-required] PASS CI postinstall-platform evidence: ${ciUrl}`);