unoverse 0.1.115 → 0.1.116

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.
@@ -153,7 +153,15 @@ services:
153
153
  # health checks) still reaches it via 127.0.0.1. Never widen to "4101:4101".
154
154
  - "127.0.0.1:4101:4101" # workflow surface (engine in-process)
155
155
  environment:
156
- - NODE_ENV=production
156
+ # PRODUCTION UNLESS THE DEVELOPER SAYS OTHERWISE. This was fixed at "production", and
157
+ # auth-off refuses to boot in production — correctly — so a LOCAL universe running these
158
+ # images could never turn auth off at all: AUTH_ENABLED=false and NODE_ENV=production
159
+ # are a permanent contradiction, and the platform was right to refuse both ways round.
160
+ #
161
+ # The guard is not weakened: unset still means production, and terraform's rendered env
162
+ # never sets this, so a deployed universe cannot drift. Turning it off is a deliberate
163
+ # line in a developer's own .env.
164
+ - NODE_ENV=${NODE_ENV:-production}
157
165
  # Studio is a separate app, launched by the CLI from source. It is not in this image
158
166
  # and has no switch here: the Docker runtime serves MCP + API only.
159
167
  - UNOVERSE_PORT=4105
@@ -273,7 +281,15 @@ services:
273
281
  ports:
274
282
  - "4104:4104"
275
283
  environment:
276
- - NODE_ENV=production
284
+ # PRODUCTION UNLESS THE DEVELOPER SAYS OTHERWISE. This was fixed at "production", and
285
+ # auth-off refuses to boot in production — correctly — so a LOCAL universe running these
286
+ # images could never turn auth off at all: AUTH_ENABLED=false and NODE_ENV=production
287
+ # are a permanent contradiction, and the platform was right to refuse both ways round.
288
+ #
289
+ # The guard is not weakened: unset still means production, and terraform's rendered env
290
+ # never sets this, so a deployed universe cannot drift. Turning it off is a deliberate
291
+ # line in a developer's own .env.
292
+ - NODE_ENV=${NODE_ENV:-production}
277
293
  - PORT=4104
278
294
  - DATABASE_URL=${DATABASE_URL:-}
279
295
  # Connection budget (INFRASTRUCTURE.md) — Terraform-rendered per size.
@@ -180,12 +180,17 @@ cmd_start() {
180
180
  if [ "${restarting:-0}" -gt 0 ]; then
181
181
  printf "\r ${RED}✗${NC} $restarting service(s) crashing on boot \n"
182
182
  echo ""
183
- docker compose -f "$ROOT/docker-compose.yml" ps -a --format "{{.Name}}\t{{.Status}}" 2>/dev/null \
183
+ # ASK COMPOSE FOR THE SERVICE NAME. `${svc##*-}` on a container called
184
+ # unoversedevtest-unoverse-1 yields "1", so the log lookup asked for a service that does
185
+ # not exist and printed nothing — the crash was named and its cause silently dropped.
186
+ # `ps --format {{.Service}}` gives compose's own name for it.
187
+ docker compose -f "$ROOT/docker-compose.yml" ps -a --format "{{.Service}}\t{{.Status}}" 2>/dev/null \
184
188
  | grep -i restarting | awk -F'\t' '{print $1}' | while read -r svc; do
185
- local_reason=$(docker compose -f "$ROOT/docker-compose.yml" logs --tail=40 "${svc##*-}" 2>/dev/null \
186
- | grep -iE "^.*(Error|error:)" | tail -1 | sed -E 's/^[^|]*\| *//')
189
+ reason=$(docker compose -f "$ROOT/docker-compose.yml" logs --tail=60 "$svc" 2>/dev/null \
190
+ | grep -iE "error" | grep -viE "at [A-Za-z_]+ \(|node:internal" | tail -1 \
191
+ | sed -E 's/^[^|]*\| *//')
187
192
  echo -e " ${RED}•${NC} ${BOLD}$svc${NC}"
188
- [ -n "$local_reason" ] && echo -e " ${DIM}${local_reason}${NC}"
193
+ [ -n "$reason" ] && echo -e " ${DIM}${reason}${NC}"
189
194
  done
190
195
  echo ""
191
196
  info "Full output: ${BOLD}unoverse logs <service>${NC}"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unoverse",
3
- "version": "0.1.115",
3
+ "version": "0.1.116",
4
4
  "description": "The Unoverse front door — create a Studio project, a universe, or a client app, and launch Studio.",
5
5
  "license": "SEE LICENSE IN README.md",
6
6
  "type": "module",