aidevops 3.32.127 → 3.32.129

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/README.md CHANGED
@@ -60,7 +60,7 @@ The result: an AI operations platform that manages projects across every busines
60
60
  [![Copyright](https://img.shields.io/badge/Copyright-Marcus%20Quinn%202025--2026-blue.svg)](https://github.com/marcusquinn)
61
61
 
62
62
  <!-- Release & Version Info -->
63
- [![Version](https://img.shields.io/badge/Version-3.32.127-blue.svg)](https://github.com/marcusquinn/aidevops/releases)
63
+ [![Version](https://img.shields.io/badge/Version-3.32.129-blue.svg)](https://github.com/marcusquinn/aidevops/releases)
64
64
  [![npm version](https://img.shields.io/npm/v/aidevops)](https://www.npmjs.com/package/aidevops)
65
65
  [![Homebrew](https://img.shields.io/badge/homebrew-marcusquinn%2Ftap-orange)](https://github.com/marcusquinn/homebrew-tap)
66
66
  [![GitHub repository](https://img.shields.io/badge/github-repository-181717.svg?logo=github)](https://github.com/marcusquinn/aidevops)
package/VERSION CHANGED
@@ -1 +1 @@
1
- 3.32.127
1
+ 3.32.129
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.32.127
8
+ # Version: 3.32.129
9
9
 
10
10
  set -euo pipefail
11
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "3.32.127",
3
+ "version": "3.32.129",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "workspaces": [
package/setup.sh CHANGED
@@ -17,7 +17,7 @@ fi
17
17
  # AI Assistant Server Access Framework Setup Script
18
18
  # Helps developers set up the framework for their infrastructure
19
19
  #
20
- # Version: 3.32.127
20
+ # Version: 3.32.129
21
21
  #
22
22
  # Quick Install:
23
23
  # npm install -g aidevops && aidevops update (recommended)
@@ -1840,30 +1840,39 @@ _setup_post_setup_steps() {
1840
1840
  }
1841
1841
 
1842
1842
  _setup_restart_pulse_if_running() {
1843
- # t2579: restart pulse if running, so newly-deployed scripts take effect.
1844
- # t3491/GH#22418: then call idempotent start so a release deploy also
1845
- # recovers a stopped pulse instead of leaving dispatch dead until manual
1846
- # intervention. Honour AIDEVOPS_SKIP_PULSE_RESTART=1 for both operations.
1847
- # Uses the deployed helper (not the repo-local one) so the restart runs
1848
- # against the agents directory setup.sh just populated.
1849
- # GH#22012: bounded 120 s timeout prevents setup.sh hanging here when the
1850
- # pulse helper takes unusually long to stop a stalled instance. Falls back
1851
- # to an unbounded call on platforms without timeout(1) (old macOS w/o
1852
- # coreutils, embedded shells).
1843
+ # Reconcile only after scheduler setup has established the effective consent
1844
+ # state. The activated helper serializes with deployment, resolves the active
1845
+ # immutable bundle under that lock, and never starts behind a disabled
1846
+ # supervisor. This also prevents a stale setup caller's INSTALL_DIR from
1847
+ # selecting the Pulse revision.
1853
1848
  if [[ "${AIDEVOPS_SKIP_PULSE_RESTART:-0}" == "1" ]]; then
1854
1849
  return 0
1855
1850
  fi
1856
1851
 
1857
- local _pulse_helper="${HOME}/.aidevops/agents/scripts/pulse-lifecycle-helper.sh"
1858
- if [[ -x "$_pulse_helper" ]]; then
1859
- if command -v timeout >/dev/null 2>&1; then
1860
- timeout 120 "$_pulse_helper" restart-if-running || print_warning "Pulse restart failed (non-fatal)"
1861
- timeout 120 "$_pulse_helper" start || print_warning "Pulse start failed (non-fatal)"
1862
- else
1863
- "$_pulse_helper" restart-if-running || print_warning "Pulse restart failed (non-fatal)"
1864
- "$_pulse_helper" start || print_warning "Pulse start failed (non-fatal)"
1852
+ local activated_root="${_AIDEVOPS_ACTIVE_BUNDLE_ROOT:-}"
1853
+ local current_root=""
1854
+ local managed_enabled="${PULSE_ENABLED:-}"
1855
+ local configured_pulse_consent=""
1856
+ if [[ "$managed_enabled" != "true" && "$managed_enabled" != "false" ]]; then
1857
+ if type _resolve_pulse_consent >/dev/null 2>&1; then
1858
+ configured_pulse_consent=$(_resolve_pulse_consent)
1865
1859
  fi
1860
+ case "$(printf '%s' "$configured_pulse_consent" | tr '[:upper:]' '[:lower:]')" in
1861
+ true) managed_enabled=true ;;
1862
+ *) managed_enabled=false ;;
1863
+ esac
1864
+ fi
1865
+ if current_root=$(resolve_aidevops_runtime_bundle_root "${HOME}/.aidevops/agents"); then
1866
+ activated_root="$current_root"
1867
+ fi
1868
+ if [[ -z "$activated_root" ]]; then
1869
+ print_warning "Pulse restart skipped because the activated runtime bundle could not be resolved"
1870
+ return 0
1866
1871
  fi
1872
+ _restart_pulse_if_running \
1873
+ "$activated_root" \
1874
+ "$managed_enabled" \
1875
+ "${HOME}/.aidevops/agents" || print_warning "Pulse reconciliation failed (non-fatal)"
1867
1876
  return 0
1868
1877
  }
1869
1878