aidevops 3.8.80 → 3.8.83

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/VERSION CHANGED
@@ -1 +1 @@
1
- 3.8.80
1
+ 3.8.83
package/aidevops.sh CHANGED
@@ -5,7 +5,7 @@
5
5
  # AI DevOps Framework CLI
6
6
  # Usage: aidevops <command> [options]
7
7
  #
8
- # Version: 3.8.80
8
+ # Version: 3.8.83
9
9
 
10
10
  set -euo pipefail
11
11
 
@@ -878,6 +878,13 @@ cmd_status() {
878
878
  print_warning "Commit signing not configured — run: aidevops signing setup"
879
879
  fi
880
880
  echo ""
881
+ # t2424/GH#20030: Pulse operational counters (pre-dispatch aborts, etc.)
882
+ local stats_helper="$AGENTS_DIR/scripts/pulse-stats-helper.sh"
883
+ if [[ -x "$stats_helper" ]]; then
884
+ print_header "Pulse Stats"
885
+ "$stats_helper" status 2>/dev/null || print_info " (no stats recorded yet)"
886
+ echo ""
887
+ fi
881
888
  }
882
889
 
883
890
  # Update helpers (extracted for complexity reduction)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "3.8.80",
3
+ "version": "3.8.83",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "bin": {
package/setup.sh CHANGED
@@ -12,7 +12,7 @@ shopt -s inherit_errexit 2>/dev/null || true
12
12
  # AI Assistant Server Access Framework Setup Script
13
13
  # Helps developers set up the framework for their infrastructure
14
14
  #
15
- # Version: 3.8.80
15
+ # Version: 3.8.83
16
16
  #
17
17
  # Quick Install:
18
18
  # npm install -g aidevops && aidevops update (recommended)
@@ -341,6 +341,33 @@ _should_setup_noninteractive_scheduler() {
341
341
  return 1
342
342
  }
343
343
 
344
+ # Stats-wrapper is a REQUIRED dependency of the supervisor pulse — the pulse
345
+ # delegates all health dashboard + quality sweep work to it (t1429). If the
346
+ # supervisor pulse is installed or consented, stats-wrapper must also be
347
+ # installed, even on first-time non-interactive runs. Without this escape
348
+ # hatch, auto-update on a fresh machine installs the pulse but not the
349
+ # stats-wrapper, leaving the health dashboard permanently stale (t2418,
350
+ # GH#20016 — canonical 11-day staleness on #10944 on 2026-04-20).
351
+ _should_setup_noninteractive_stats_wrapper() {
352
+ if _should_setup_noninteractive_scheduler \
353
+ "Stats wrapper" \
354
+ "com.aidevops.aidevops-stats-wrapper" \
355
+ "aidevops: stats-wrapper" \
356
+ "aidevops-stats-wrapper"; then
357
+ return 0
358
+ fi
359
+
360
+ # Pulse-dependency escape hatch: install stats-wrapper whenever the
361
+ # supervisor pulse is (or will be) enabled. Pulse itself also honours
362
+ # config consent in the non-interactive path, so following its gate
363
+ # keeps the two schedulers in lockstep.
364
+ if _should_setup_noninteractive_supervisor_pulse; then
365
+ return 0
366
+ fi
367
+
368
+ return 1
369
+ }
370
+
344
371
  # Spinner for long-running operations
345
372
  # Usage: run_with_spinner "Installing package..." command arg1 arg2
346
373
  run_with_spinner() {
@@ -1136,8 +1163,10 @@ _setup_post_setup_steps() {
1136
1163
  if _should_setup_noninteractive_supervisor_pulse; then
1137
1164
  setup_supervisor_pulse "$os"
1138
1165
  fi
1139
- # Regenerate other schedulers if already installed (GH#17695 Finding B)
1140
- if _should_setup_noninteractive_scheduler "Stats wrapper" "com.aidevops.aidevops-stats-wrapper" "aidevops: stats-wrapper" "aidevops-stats-wrapper"; then
1166
+ # Regenerate other schedulers if already installed (GH#17695 Finding B).
1167
+ # Stats wrapper is a pulse dependency — also install on first run when
1168
+ # the supervisor pulse is consented (t2418, GH#20016).
1169
+ if _should_setup_noninteractive_stats_wrapper; then
1141
1170
  setup_stats_wrapper "${PULSE_ENABLED:-}"
1142
1171
  fi
1143
1172
  if _should_setup_noninteractive_scheduler "Failure miner" "sh.aidevops.routine-gh-failure-miner" "aidevops: gh-failure-miner" "aidevops-gh-failure-miner"; then