aidevops 3.13.79 → 3.13.80

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.13.79
1
+ 3.13.80
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.13.79
8
+ # Version: 3.13.80
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.13.79",
3
+ "version": "3.13.80",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "bin": {
@@ -143,7 +143,12 @@ _deploy_agents_copy() {
143
143
  for pns in "$@"; do
144
144
  rsync_excludes+=("--exclude=${pns}/")
145
145
  done
146
- if rsync -a "${rsync_excludes[@]}" "$source_dir/" "$target_dir/"; then
146
+ local rsync_timeout="${AIDEVOPS_RSYNC_TIMEOUT:-120}"
147
+ [[ "$rsync_timeout" =~ ^[0-9]+$ && "$rsync_timeout" -gt 0 ]] || rsync_timeout=120
148
+ # GH#22086: bound rsync I/O stalls so setup.sh --non-interactive can
149
+ # unwind via its EXIT trap instead of leaving a long-running setup owner
150
+ # and stale setup-noninteractive.lock.d behind.
151
+ if rsync -a --timeout="$rsync_timeout" "${rsync_excludes[@]}" "$source_dir/" "$target_dir/"; then
147
152
  deploy_ok=true
148
153
  fi
149
154
  else
@@ -331,10 +331,18 @@ cleanup_worktree_entries_in_repos_json() {
331
331
  command -v git &>/dev/null || return 0
332
332
 
333
333
  local stale_paths=()
334
- local path git_dir common_dir
334
+ local skipped_current_paths=()
335
+ local current_worktree=""
336
+ local path git_dir common_dir resolved_path
337
+
338
+ current_worktree=$(git rev-parse --show-toplevel 2>/dev/null || true)
339
+ if [[ -n "$current_worktree" ]]; then
340
+ current_worktree=$(cd "$current_worktree" 2>/dev/null && pwd -P) || current_worktree=""
341
+ fi
335
342
 
336
343
  while IFS= read -r path; do
337
344
  [[ -n "$path" && -d "$path" ]] || continue
345
+ resolved_path=$(cd "$path" 2>/dev/null && pwd -P) || resolved_path=""
338
346
  git_dir=$(git -C "$path" rev-parse --git-dir 2>/dev/null) || continue
339
347
  common_dir=$(git -C "$path" rev-parse --git-common-dir 2>/dev/null) || continue
340
348
  # Normalise to absolute paths for comparison.
@@ -343,6 +351,10 @@ cleanup_worktree_entries_in_repos_json() {
343
351
  git_dir=$(cd "$git_dir" 2>/dev/null && pwd -P) || git_dir=""
344
352
  common_dir=$(cd "$common_dir" 2>/dev/null && pwd -P) || common_dir=""
345
353
  if [[ -n "$git_dir" && -n "$common_dir" && "$git_dir" != "$common_dir" ]]; then
354
+ if [[ -n "$current_worktree" && -n "$resolved_path" && "$resolved_path" == "$current_worktree" ]]; then
355
+ skipped_current_paths+=("$path")
356
+ continue
357
+ fi
346
358
  stale_paths+=("$path")
347
359
  fi
348
360
  done < <(jq -r '.initialized_repos[].path // empty' "$repos_json" 2>/dev/null)
@@ -361,6 +373,16 @@ cleanup_worktree_entries_in_repos_json() {
361
373
  done
362
374
  fi
363
375
 
376
+ if [[ ${#skipped_current_paths[@]} -gt 0 ]]; then
377
+ print_warning "Skipped ${#skipped_current_paths[@]} active current worktree entry/entries in repos.json (t2250):"
378
+ local skipped_path
379
+ for skipped_path in "${skipped_current_paths[@]}"; do
380
+ print_warning " - $skipped_path"
381
+ done
382
+ print_warning "Run setup.sh from the canonical worktree later to finish the one-shot cleanup."
383
+ return 0
384
+ fi
385
+
364
386
  mkdir -p "$(dirname "$flag_file")"
365
387
  date -u +"%Y-%m-%dT%H:%M:%SZ" >"$flag_file"
366
388
  return 0
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.13.79
15
+ # Version: 3.13.80
16
16
  #
17
17
  # Quick Install:
18
18
  # npm install -g aidevops && aidevops update (recommended)