aidevops 3.8.24 → 3.8.26

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.24
1
+ 3.8.26
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.24
8
+ # Version: 3.8.26
9
9
 
10
10
  set -euo pipefail
11
11
 
@@ -27,10 +27,12 @@ NC='\033[0m' # No Color
27
27
  # under `set -euo pipefail` on any BSD system and breaks sudo aidevops approve.
28
28
  # Mirrors the pattern in .agents/scripts/approval-helper.sh:_resolve_real_home().
29
29
  # Security: no escalation — root already has full filesystem access.
30
+ _AIDEVOPS_REAL_HOME="$HOME"
30
31
  if [[ -n "${SUDO_USER:-}" && "$(id -u)" -eq 0 ]] && command -v getent &>/dev/null; then
31
- _AIDEVOPS_REAL_HOME=$(getent passwd "$SUDO_USER" | cut -d: -f6)
32
- else
33
- _AIDEVOPS_REAL_HOME="$HOME"
32
+ _tmp_real_home=$(getent passwd "$SUDO_USER" | cut -d: -f6)
33
+ if [[ -n "$_tmp_real_home" ]]; then
34
+ _AIDEVOPS_REAL_HOME="$_tmp_real_home"
35
+ fi
34
36
  fi
35
37
  INSTALL_DIR="$_AIDEVOPS_REAL_HOME/Git/aidevops"
36
38
  AGENTS_DIR="$_AIDEVOPS_REAL_HOME/.aidevops/agents"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "3.8.24",
3
+ "version": "3.8.26",
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.24
15
+ # Version: 3.8.26
16
16
  #
17
17
  # Quick Install:
18
18
  # npm install -g aidevops && aidevops update (recommended)
@@ -825,6 +825,48 @@ _setup_print_header() {
825
825
  return 0
826
826
  }
827
827
 
828
+ # GH#18950 (t2087): Check for bash 3.2 → modern bash upgrade opportunity.
829
+ # Runs after platform detection, before deploy. Interactive mode prompts
830
+ # for install; non-interactive respects AIDEVOPS_AUTO_UPGRADE_BASH=1.
831
+ # Always fail-open — never block setup on a missing bash upgrade.
832
+ _setup_check_bash_upgrade() {
833
+ # Only applies to macOS; Linux bash is already modern on any current distro.
834
+ if [[ "${AIDEVOPS_PLATFORM:-}" != "macos" ]]; then
835
+ return 0
836
+ fi
837
+
838
+ local helper="${INSTALL_DIR}/.agents/scripts/bash-upgrade-helper.sh"
839
+ [[ -x "$helper" ]] || return 0
840
+
841
+ # Check exit 0 = ok; 1 = needs upgrade; 2 = unsupported platform; 3 = homebrew missing.
842
+ local rc=0
843
+ "$helper" check --quiet || rc=$?
844
+
845
+ if [[ "$rc" -eq 0 ]]; then
846
+ return 0 # Already has modern bash, nothing to do.
847
+ fi
848
+
849
+ echo ""
850
+ echo "ℹ️ macOS default bash is 3.2 — modern bash (4+) recommended to avoid bash-compat bugs."
851
+ echo " Background: GH#18770, GH#18784, GH#18786, GH#18804, GH#18830 all traced to this class."
852
+ echo ""
853
+
854
+ if [[ "$NON_INTERACTIVE" == "true" ]]; then
855
+ if [[ "${AIDEVOPS_AUTO_UPGRADE_BASH:-}" == "1" ]]; then
856
+ print_info "AIDEVOPS_AUTO_UPGRADE_BASH=1 set: installing bash via Homebrew"
857
+ "$helper" install --yes || print_warning "bash install failed (non-fatal) — advisory written"
858
+ else
859
+ print_info "non-interactive mode: skipping bash upgrade prompt (set AIDEVOPS_AUTO_UPGRADE_BASH=1 to auto-install)"
860
+ "$helper" status 2>&1 | grep -E "^Remediation|^Status" || true
861
+ fi
862
+ return 0
863
+ fi
864
+
865
+ # Interactive: prompt to install.
866
+ "$helper" install || print_warning "bash install declined or failed (non-fatal) — advisory written"
867
+ return 0
868
+ }
869
+
828
870
  # GH#17769: Comment out deprecated model env vars in a single credentials file.
829
871
  _comment_out_deprecated_model_vars() {
830
872
  local file="$1"
@@ -1178,6 +1220,11 @@ main() {
1178
1220
 
1179
1221
  _setup_print_header
1180
1222
 
1223
+ # GH#18950 (t2087): bash 3.2 → modern bash upgrade check. Runs before
1224
+ # the main setup flow so the user sees the prompt early. Fail-open —
1225
+ # never blocks setup even if bash install fails.
1226
+ _setup_check_bash_upgrade
1227
+
1181
1228
  if [[ "$NON_INTERACTIVE" == "true" ]]; then
1182
1229
  _setup_run_non_interactive
1183
1230
  else