amsd-pipeline 2.0.6 → 2.0.7

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.
Files changed (2) hide show
  1. package/install.sh +14 -10
  2. package/package.json +1 -1
package/install.sh CHANGED
@@ -894,7 +894,13 @@ else
894
894
  # ./data is the container's own database — it may own that outright.
895
895
  ensure_bind_mount_ownership "$LAUNCH_DIR/data"
896
896
  # ./spool is the boundary the HOST runner writes; it must stay writable from both sides.
897
- ensure_shared_bind_mount "$LAUNCH_DIR/spool"
897
+ # ITS FAILURE IS THE INSTALL'S FAILURE. When this silently did nothing, the install carried on
898
+ # and runner-host.js died minutes later on "EACCES: mkdir .../spool/requests" — a symptom three
899
+ # steps from its cause. Say it where it happens.
900
+ if ! ensure_shared_bind_mount "$LAUNCH_DIR/spool"; then
901
+ _bad "spool is not writable by both the host runner and the container — the dashboard can queue no runs"
902
+ FAILED=1
903
+ fi
898
904
 
899
905
  _LD_PORT="$(grep -E '^LAUNCH_UI_PORT=' "$LAUNCH_DIR/.env" 2>/dev/null | tail -1 | cut -d= -f2)"
900
906
  _LD_PORT="${_LD_PORT:-8099}"
@@ -946,18 +952,16 @@ else
946
952
  # 2026-09-07 under podman-compose: launch-ui kept a stale image and a stale network mode
947
953
  # after both were changed, so the install re-tested exactly what it had just replaced and
948
954
  # reported the old failure. A down first costs seconds and makes the up mean something.
955
+ # --force-recreate: `up -d --build` alone leaves an EXISTING container untouched even when
956
+ # the compose file that defined it has changed, so a re-install silently kept the previous
957
+ # install's image, network mode and published port. Live 2026-09-07: the dashboard answered
958
+ # on 8099 while this install health-checked 8109, and a rebuilt UI image was never used.
959
+ # A flag rather than an extra `down` — the retry below already tears down between its own
960
+ # attempts, and a second teardown here changes what one attempt means.
949
961
  for _LD_SUBNET in $(isolated_subnet_candidates "$ROOT-launch"); do
950
962
  _LD_TRY_PORT=$((_LD_PORT + _LD_I * 10))
951
- # EVERY ATTEMPT STARTS CLEAN. `up -d --build` leaves an EXISTING container alone, so a
952
- # retry's new port/subnet is silently ignored and the stack stays on the previous
953
- # attempt's values — live 2026-09-07: attempt 0 published 8099, attempt 1 raised the
954
- # port to 8109, compose reused the containers, and the installer then health-checked
955
- # 8109 while the dashboard answered perfectly on 8099. The same trap the observability
956
- # stack's retry was already fixed for; this loop never got it.
957
- (cd "$LAUNCH_DIR" && container_compose -f "$LAUNCH_COMPOSE" -p "$_LD_PROJECT" down) \
958
- >/dev/null 2>&1 || true
959
963
  if (cd "$LAUNCH_DIR" && LAUNCH_SUBNET="$_LD_SUBNET" LAUNCH_UI_PORT="$_LD_TRY_PORT" \
960
- container_compose -f "$LAUNCH_COMPOSE" -p "$_LD_PROJECT" up -d --build) >"$_LD_LOG" 2>&1; then
964
+ container_compose -f "$LAUNCH_COMPOSE" -p "$_LD_PROJECT" up -d --build --force-recreate) >"$_LD_LOG" 2>&1; then
961
965
  _LD_UP=0
962
966
  _LD_PORT="$_LD_TRY_PORT"
963
967
  _LD_HEALTH_URL="http://localhost:${_LD_PORT}/api/health"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "amsd-pipeline",
3
- "version": "2.0.6",
3
+ "version": "2.0.7",
4
4
  "description": "Installer for the amsd-pipeline orchestration stack. Clones, packages and provisions the full stack with one command — no separate git clone step.",
5
5
  "bin": {
6
6
  "amsd-pipeline": "bin/amsd-pipeline.js"