aidevops 3.13.50 → 3.13.52

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.50
1
+ 3.13.52
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.50
8
+ # Version: 3.13.52
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.50",
3
+ "version": "3.13.52",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "bin": {
@@ -340,8 +340,9 @@ _install_opencode_plugin_deps() {
340
340
  }
341
341
 
342
342
  # _atomic_stage_and_deploy_agents source_dir target_dir [plugin_namespaces...]
343
- # Stages a copy in target_dir.staging, carries over preserved dirs (custom/,
344
- # draft/, and any plugin namespaces), then atomically swaps staging into place.
343
+ # Stages a copy in a per-process target_dir.staging.* directory, carries over
344
+ # preserved dirs (custom/, draft/, and any plugin namespaces), then atomically
345
+ # swaps staging into place.
345
346
  # Returns 0 on success, 1 on failure.
346
347
  _atomic_stage_and_deploy_agents() {
347
348
  local source_dir="$1"
@@ -353,14 +354,22 @@ _atomic_stage_and_deploy_agents() {
353
354
  # Previously, clean + copy happened in-place, creating a window where
354
355
  # scripts were missing. The pulse could dispatch workers mid-deploy,
355
356
  # hitting "No such file or directory" errors. Now we:
356
- # 1. rsync into a staging dir (target_dir.staging)
357
+ # 1. rsync into a unique staging dir (target_dir.staging.*)
357
358
  # 2. Move preserved dirs (custom/, draft/, plugins) from live to staging
358
- # 3. mv live → .old, mv staging → live (atomic on same filesystem)
359
- # 4. rm .old
360
- local staging_dir="${target_dir}.staging"
361
- local old_dir="${target_dir}.old"
362
- rm -rf "$staging_dir" "$old_dir"
363
- mkdir -p "$staging_dir"
359
+ # 3. mv live → .old.*, mv staging → live (atomic on same filesystem)
360
+ # 4. rm .old.*
361
+ #
362
+ # GH#22063: the staging/backup paths must be unique per setup process. Fixed
363
+ # names such as target_dir.staging let a concurrent setup cleanup remove the
364
+ # directory while rsync is still writing into it, producing renameat/move_file
365
+ # ENOENT failures even though the canonical .agents/ source is valid.
366
+ local staging_dir old_dir
367
+ staging_dir=$(mktemp -d "${target_dir}.staging.XXXXXX") || {
368
+ print_error "Failed to create agents staging directory"
369
+ return 1
370
+ }
371
+ old_dir="${target_dir}.old.$$"
372
+ rm -rf "$old_dir"
364
373
 
365
374
  # Copy source into staging
366
375
  local copy_rc
@@ -220,15 +220,31 @@ generate_agent_skills() {
220
220
  print_info "Generating Agent Skills SKILL.md files..."
221
221
 
222
222
  local skills_script="$HOME/.aidevops/agents/scripts/generate-skills.sh"
223
+ local timeout_seconds="${AIDEVOPS_SKILLS_GENERATE_TIMEOUT:-90}"
224
+ local success_msg="Agent Skills SKILL.md files generated"
225
+ local generate_rc=0
223
226
 
224
227
  if [[ -f "$skills_script" ]]; then
225
- if bash "$skills_script" 2>/dev/null; then
226
- print_success "Agent Skills SKILL.md files generated"
227
- return 0
228
+ if command -v timeout >/dev/null 2>&1; then
229
+ if timeout "$timeout_seconds" bash "$skills_script" 2>/dev/null; then
230
+ print_success "$success_msg"
231
+ return 0
232
+ fi
233
+ generate_rc=$?
234
+ if [[ "$generate_rc" -eq 124 ]]; then
235
+ print_warning "Agent Skills generation exceeded ${timeout_seconds}s — continuing without skill symlink refresh"
236
+ return 1
237
+ fi
228
238
  else
229
- print_warning "Agent Skills generation encountered issues (non-critical)"
230
- return 1
239
+ if bash "$skills_script" 2>/dev/null; then
240
+ print_success "$success_msg"
241
+ return 0
242
+ fi
243
+ generate_rc=$?
231
244
  fi
245
+
246
+ print_warning "Agent Skills generation encountered issues (non-critical)"
247
+ return 1
232
248
  else
233
249
  print_warning "Agent Skills generator not found at $skills_script"
234
250
  return 1
@@ -683,6 +699,7 @@ check_tool_updates() {
683
699
  bash "$tool_check_script" --quiet
684
700
  echo ""
685
701
 
702
+ local do_update=""
686
703
  setup_prompt do_update "Update all outdated tools now? [Y/n]: " "Y"
687
704
 
688
705
  if [[ "$do_update" =~ ^[Yy]?$ || "$do_update" == "Y" ]]; then
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.50
15
+ # Version: 3.13.52
16
16
  #
17
17
  # Quick Install:
18
18
  # npm install -g aidevops && aidevops update (recommended)