aidevops 3.13.87 → 3.13.88

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.87
1
+ 3.13.88
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.87
8
+ # Version: 3.13.88
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.87",
3
+ "version": "3.13.88",
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.13.87
15
+ # Version: 3.13.88
16
16
  #
17
17
  # Quick Install:
18
18
  # npm install -g aidevops && aidevops update (recommended)
@@ -1810,6 +1810,15 @@ _setup_noninteractive_schedulers() {
1810
1810
  _setup_post_setup_steps() {
1811
1811
  local os="$1"
1812
1812
 
1813
+ # Non-interactive mode still has post-deploy scheduler and pulse-restart
1814
+ # work to do. Do not print the human "Setup complete!" marker until those
1815
+ # bounded postflight steps and the final child-process drain have finished;
1816
+ # callers treat that line as a completion signal.
1817
+ if [[ "$NON_INTERACTIVE" == "true" ]]; then
1818
+ _setup_noninteractive_schedulers "$os"
1819
+ return 0
1820
+ fi
1821
+
1813
1822
  # Print setup summary before final success message (GH#5240)
1814
1823
  print_setup_summary
1815
1824
 
@@ -1825,17 +1834,6 @@ _setup_post_setup_steps() {
1825
1834
  echo " npm install -g @anthropic-ai/claude-code"
1826
1835
  fi
1827
1836
 
1828
- # Non-interactive mode: deploy + migrations only — skip schedulers,
1829
- # services, and optional post-setup work (CI/agent shells don't need them).
1830
- # Tabby profile sync runs in both modes (has its own non-interactive path).
1831
- #
1832
- # Exceptions: regenerate existing schedulers (GH#17381, GH#17695 Finding B)
1833
- # and allow first-time install when config consent is explicitly true (GH#17403).
1834
- if [[ "$NON_INTERACTIVE" == "true" ]]; then
1835
- _setup_noninteractive_schedulers "$os"
1836
- return 0
1837
- fi
1838
-
1839
1837
  # Post-setup: auto-update, schedulers, final instructions (GH#5793)
1840
1838
  setup_auto_update
1841
1839
  setup_supervisor_pulse "$os"
@@ -1872,6 +1870,36 @@ _setup_post_setup_steps() {
1872
1870
  return 0
1873
1871
  }
1874
1872
 
1873
+ _setup_restart_pulse_if_running() {
1874
+ # t2579: restart pulse if running, so newly-deployed scripts take effect.
1875
+ # No-op if pulse is not running, or if AIDEVOPS_SKIP_PULSE_RESTART=1.
1876
+ # Uses the deployed helper (not the repo-local one) so the restart runs
1877
+ # against the agents directory setup.sh just populated.
1878
+ # GH#22012: bounded 120 s timeout prevents setup.sh hanging here when the
1879
+ # pulse helper takes unusually long to stop a stalled instance. Falls back
1880
+ # to an unbounded call on platforms without timeout(1) (old macOS w/o
1881
+ # coreutils, embedded shells).
1882
+ local _pulse_helper="${HOME}/.aidevops/agents/scripts/pulse-lifecycle-helper.sh"
1883
+ if [[ -x "$_pulse_helper" ]]; then
1884
+ if command -v timeout >/dev/null 2>&1; then
1885
+ timeout 120 "$_pulse_helper" restart-if-running || print_warning "Pulse restart failed (non-fatal)"
1886
+ else
1887
+ "$_pulse_helper" restart-if-running || print_warning "Pulse restart failed (non-fatal)"
1888
+ fi
1889
+ fi
1890
+ return 0
1891
+ }
1892
+
1893
+ _setup_print_noninteractive_success() {
1894
+ # Ensure every tracked or discovered child has either exited or been
1895
+ # intentionally terminated before emitting the caller-visible success line.
1896
+ _setup_cleanup_noninteractive_children
1897
+ print_setup_summary
1898
+ echo ""
1899
+ print_success "Setup complete!"
1900
+ return 0
1901
+ }
1902
+
1875
1903
  # Print the completion sentinel. This is the canonical "setup.sh finished all
1876
1904
  # phases" marker — any caller that needs to detect silent early-termination
1877
1905
  # (e.g., t2022-class bugs where a sourced helper's set -e propagates a
@@ -1936,21 +1964,10 @@ main() {
1936
1964
 
1937
1965
  _setup_post_setup_steps "$_os"
1938
1966
 
1939
- # t2579: restart pulse if running, so newly-deployed scripts take effect.
1940
- # No-op if pulse is not running, or if AIDEVOPS_SKIP_PULSE_RESTART=1.
1941
- # Uses the deployed helper (not the repo-local one) so the restart runs
1942
- # against the agents directory setup.sh just populated.
1943
- # GH#22012: bounded 120 s timeout prevents setup.sh hanging here when the
1944
- # pulse helper takes unusually long to stop a stalled instance. Falls back
1945
- # to an unbounded call on platforms without timeout(1) (old macOS w/o
1946
- # coreutils, embedded shells).
1947
- local _pulse_helper="${HOME}/.aidevops/agents/scripts/pulse-lifecycle-helper.sh"
1948
- if [[ -x "$_pulse_helper" ]]; then
1949
- if command -v timeout >/dev/null 2>&1; then
1950
- timeout 120 "$_pulse_helper" restart-if-running || print_warning "Pulse restart failed (non-fatal)"
1951
- else
1952
- "$_pulse_helper" restart-if-running || print_warning "Pulse restart failed (non-fatal)"
1953
- fi
1967
+ _setup_restart_pulse_if_running
1968
+
1969
+ if [[ "$NON_INTERACTIVE" == "true" ]]; then
1970
+ _setup_print_noninteractive_success
1954
1971
  fi
1955
1972
 
1956
1973
  # GH#18492 / t2026: completion sentinel. Must be the last output of a