PanGalactic Claude Opus 4.6 commited on
Commit
f671471
Β·
1 Parent(s): ac07f8f

Pin reachy-mini to 1.2.x (1.3.1 has Zenoh pub_status regression)

Browse files

1.3.1 ZenohServer missing pub_status attribute causes daemon crash,
app TimeoutError on get_status(), and all API routes 404.

Also remove redundant daemon wake-up call from startup script β€”
--sim mode auto-wakes (wake_up_on_start=True), and the double
initialization was triggering the Zenoh crash.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Files changed (2) hide show
  1. Dockerfile.demo +1 -1
  2. demo-start.sh +15 -4
Dockerfile.demo CHANGED
@@ -37,7 +37,7 @@ ENV PATH="/home/user/.local/bin:${PATH}"
37
  WORKDIR /home/user/app
38
 
39
  # Install MuJoCo + reachy-mini SDK (provides reachy-mini-daemon command)
40
- RUN pip install --no-cache-dir --user mujoco "reachy-mini"
41
 
42
  # Copy the hello_world app and install as editable package
43
  # (editable so the daemon discovers it via entry points)
 
37
  WORKDIR /home/user/app
38
 
39
  # Install MuJoCo + reachy-mini SDK (provides reachy-mini-daemon command)
40
+ RUN pip install --no-cache-dir --user mujoco "reachy-mini>=1.2.8,<1.3"
41
 
42
  # Copy the hello_world app and install as editable package
43
  # (editable so the daemon discovers it via entry points)
demo-start.sh CHANGED
@@ -23,10 +23,21 @@ for i in $(seq 1 60); do
23
  sleep 1
24
  done
25
 
26
- # ── Wake up the daemon (not_initialized β†’ ready) ─────────────────
27
- echo "[demo] Waking up daemon..."
28
- curl -sf -X POST "${DAEMON_URL}/api/daemon/start?wake_up=true" || true
29
- sleep 3
 
 
 
 
 
 
 
 
 
 
 
30
 
31
  # ── Start the hello_world app ────────────────────────────────────
32
  echo "[demo] Starting Hello World app..."
 
23
  sleep 1
24
  done
25
 
26
+ # ── Wait for daemon to finish waking up ─────────────────────────
27
+ # The daemon auto-wakes in sim mode (wake_up_on_start=True).
28
+ # Wait for state to leave "not_initialized" before starting the app.
29
+ echo "[demo] Waiting for daemon to be ready..."
30
+ for i in $(seq 1 30); do
31
+ STATE=$(curl -sf "${DAEMON_URL}/api/daemon/status" 2>/dev/null | python3 -c "import sys,json; print(json.load(sys.stdin).get('state',''))" 2>/dev/null || echo "")
32
+ if [ "$STATE" != "not_initialized" ] && [ -n "$STATE" ]; then
33
+ echo "[demo] Daemon state: ${STATE} (took ${i}s)"
34
+ break
35
+ fi
36
+ if [ "$i" -eq 30 ]; then
37
+ echo "[demo] WARNING: Daemon still not initialized after 30s, proceeding anyway"
38
+ fi
39
+ sleep 1
40
+ done
41
 
42
  # ── Start the hello_world app ────────────────────────────────────
43
  echo "[demo] Starting Hello World app..."