aidevops 3.32.148 → 3.32.150

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.148-blue.svg)](https://github.com/marcusquinn/aidevops/releases)
63
+ [![Version](https://img.shields.io/badge/Version-3.32.150-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.148
1
+ 3.32.150
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.148
8
+ # Version: 3.32.150
9
9
 
10
10
  set -euo pipefail
11
11
 
@@ -247,6 +247,59 @@ _run_update_setup() {
247
247
  return $?
248
248
  }
249
249
 
250
+ _update_verify_deployment_state() {
251
+ local expected_sha="$1"
252
+ local repo_version=""
253
+ local deployed_version=""
254
+ local deployed_sha=""
255
+ local stamp_file="$_AIDEVOPS_REAL_HOME/.aidevops/.deployed-sha"
256
+ repo_version=$(cat "$INSTALL_DIR/VERSION" 2>/dev/null || echo "unknown")
257
+ deployed_version=$(cat "$AGENTS_DIR/VERSION" 2>/dev/null || echo "none")
258
+ if [[ -f "$stamp_file" ]]; then
259
+ deployed_sha=$(tr -d '[:space:]' <"$stamp_file" 2>/dev/null) || deployed_sha=""
260
+ fi
261
+ if [[ "$repo_version" != "$deployed_version" ]]; then
262
+ print_error "Agent deployment failed: repo version $repo_version, deployed version $deployed_version"
263
+ return 1
264
+ fi
265
+ if [[ -z "$deployed_sha" || "$deployed_sha" != "$expected_sha" ]]; then
266
+ print_error "Agent deployment failed: activated SHA ${deployed_sha:-none} does not match repository HEAD $expected_sha"
267
+ return 1
268
+ fi
269
+ return 0
270
+ }
271
+
272
+ _run_update_setup_transaction() {
273
+ local output_mode="$1"
274
+ local expected_sha="$2"
275
+ local setup_exit=0
276
+ _run_update_setup "$output_mode" || setup_exit=$?
277
+ if [[ "$setup_exit" -ne 0 ]]; then
278
+ print_error "Agent deployment failed: setup exited with code $setup_exit"
279
+ return 1
280
+ fi
281
+ _update_verify_deployment_state "$expected_sha" || return 1
282
+ return 0
283
+ }
284
+
285
+ _update_render_changelog() {
286
+ local old_hash="$1"
287
+ local new_hash="$2"
288
+ local current_version="$3"
289
+ local total_commits=0
290
+ total_commits=$(git -C "$INSTALL_DIR" rev-list --count "$old_hash..$new_hash" 2>/dev/null || echo "0")
291
+ if [[ "$total_commits" -eq 0 ]]; then
292
+ return 0
293
+ fi
294
+ echo ""
295
+ print_info "Changes since $current_version ($total_commits commits):"
296
+ git -C "$INSTALL_DIR" log --oneline --max-count=20 "$old_hash..$new_hash" || true
297
+ if [[ "$total_commits" -gt 20 ]]; then
298
+ echo " ... and more (run 'git log --oneline' in $INSTALL_DIR for full list)"
299
+ fi
300
+ return 0
301
+ }
302
+
250
303
  # Update/upgrade command
251
304
  cmd_update() {
252
305
  local skip_project_sync=false
@@ -305,7 +358,7 @@ cmd_update() {
305
358
  if [[ "$repo_version" != "$deployed_version" ]]; then
306
359
  print_warning "Deployed agents ($deployed_version) don't match repo ($repo_version)"
307
360
  print_info "Re-running incremental setup to sync agents..."
308
- _run_update_setup "$update_output_mode"
361
+ _run_update_setup_transaction "$update_output_mode" "$local_hash" || return 1
309
362
  else
310
363
  # t2706: VERSION matches but .deployed-sha may lag HEAD when
311
364
  # fixes land between releases. Detect and redeploy on framework
@@ -330,7 +383,7 @@ cmd_update() {
330
383
  if [[ "$has_code_drift" -eq 1 ]]; then
331
384
  print_warning "Deployed scripts drifted (${deployed_sha:0:7}→${local_hash:0:7})"
332
385
  print_info "Re-running incremental setup to deploy latest scripts..."
333
- _run_update_setup "$update_output_mode"
386
+ _run_update_setup_transaction "$update_output_mode" "$local_hash" || return 1
334
387
  fi
335
388
  # GH#21735: workflow templates can change between
336
389
  # releases without triggering has_code_drift (templates
@@ -360,14 +413,7 @@ cmd_update() {
360
413
  fi
361
414
  if [[ "$old_hash" != "$new_hash" ]]; then
362
415
  if _update_repo_verify_files_changed "$old_hash" "$new_hash"; then reconcile_repo_verify=true; fi
363
- local total_commits
364
- total_commits=$(git rev-list --count "$old_hash..$new_hash" 2>/dev/null || echo "0")
365
- if [[ "$total_commits" -gt 0 ]]; then
366
- echo ""
367
- print_info "Changes since $current_version ($total_commits commits):"
368
- git log --oneline "$old_hash..$new_hash" | grep -E '^[a-f0-9]+ (feat|fix|refactor|perf|docs):' | head -20
369
- [[ "$total_commits" -gt 20 ]] && echo " ... and more (run 'git log --oneline' in $INSTALL_DIR for full list)"
370
- fi
416
+ _update_render_changelog "$old_hash" "$new_hash" "$current_version"
371
417
  # GH#21735: surface workflow template drift so the
372
418
  # operator can resync downstream callers before CI bites.
373
419
  _update_check_workflow_drift "$old_hash" "$new_hash"
@@ -377,16 +423,8 @@ cmd_update() {
377
423
  _update_verify_signature
378
424
  echo ""
379
425
  print_info "Running incremental setup to apply changes (falls back to full setup if needed)..."
380
- local setup_exit=0
381
- _run_update_setup "$update_output_mode" || setup_exit=$?
382
- local repo_version deployed_version
383
- repo_version=$(cat "$INSTALL_DIR/VERSION" 2>/dev/null || echo "unknown")
384
- deployed_version=$(cat "$HOME/.aidevops/agents/VERSION" 2>/dev/null || echo "none")
385
- [[ "$setup_exit" -ne 0 ]] && print_warning "Setup exited with code $setup_exit"
386
- if [[ "$repo_version" != "$deployed_version" ]]; then
387
- print_warning "Agent deployment incomplete: repo=$repo_version, deployed=$deployed_version"
388
- print_info "Run 'bash $INSTALL_DIR/setup.sh' manually to deploy agents"
389
- else print_success "Updated to version $new_version (agents deployed)"; fi
426
+ _run_update_setup_transaction "$update_output_mode" "$new_hash" || return 1
427
+ print_success "Updated to version $new_version (agents deployed)"
390
428
  fi
391
429
  else
392
430
  _update_fresh_install || return 1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "3.32.148",
3
+ "version": "3.32.150",
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.148
20
+ # Version: 3.32.150
21
21
  #
22
22
  # Quick Install:
23
23
  # npm install -g aidevops && aidevops update (recommended)
@@ -85,8 +85,6 @@ if [[ -d "$SETUP_MODULES_DIR" ]]; then
85
85
  # shellcheck disable=SC1091 # Dynamic path via $SETUP_MODULES_DIR; files exist at runtime
86
86
  source "$SETUP_MODULES_DIR/_common.sh"
87
87
  # shellcheck disable=SC1091
88
- source "$SETUP_MODULES_DIR/_backup.sh"
89
- # shellcheck disable=SC1091
90
88
  source "$SETUP_MODULES_DIR/_validation.sh"
91
89
  # shellcheck disable=SC1091
92
90
  source "$SETUP_MODULES_DIR/_migration.sh"