mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
fix(release): close the 0.19.0 scan findings — sandbox mongo tag, flow-verb timeout walls, video hardening (#329)
- mongo:8-alpine → mongo:8 (tag never existed; a mongo-opted project could spawn no agents) + a Docker Hub tag-existence e2e guard for every sandbox engine - flow-verb timeouts at both walls: shared SLOW_VERBS policy (i_am_done / submit_up / submit_root / open_pr / i_will_work_on get the 900s server budget); the MCP client now outlasts the server budget (+10s headroom, orchestrator-injected env) so agents receive the middleware's clean 504 envelope instead of dying at the old flat 30s client timeout - cancellation safety: the quality gate kills+reaps its child on CancelledError; create_pr records the PR via a shield-with-wait-out helper so the write can neither be skipped nor race get_db's rollback - video engine: renderer sidecar isolated on a render-only network, 2g/2cpu caps, 570s render watchdog with exit-on-hang, 512MB tar decompression cap, CEO notification on terminal render failure, reject under the approve mutex (fail-closed on Redis-down) - dead python-jose dependency removed (drops ecdsa and its unfixable Minerva advisory PYSEC-2026-1325); panel --font-mono now a real monospace stack Co-authored-by: Renn F <rennf93@users.noreply.github.com>
This commit is contained in:
@@ -126,11 +126,16 @@ services:
|
||||
image: ${ROBOCO_REGISTRY:-ghcr.io/rennf93}/roboco-video-renderer:${ROBOCO_VERSION:-latest}
|
||||
container_name: roboco-video-renderer
|
||||
restart: unless-stopped
|
||||
# Isolated sidecar network: headless Chrome here executes
|
||||
# agent-authored composition HTML/JS. Only the orchestrator (also
|
||||
# homed on `render`) can reach it; it can reach nothing else.
|
||||
networks:
|
||||
- default
|
||||
- render
|
||||
# Chrome headless rendering can crash under Docker's default 64MB
|
||||
# /dev/shm ("Chrome crashed"); give it real shared memory.
|
||||
shm_size: "1gb"
|
||||
mem_limit: "2g"
|
||||
cpus: 2
|
||||
healthcheck:
|
||||
test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3001/health').then((r) => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))"]
|
||||
interval: 10s
|
||||
@@ -221,10 +226,12 @@ services:
|
||||
container_name: roboco-orchestrator
|
||||
restart: unless-stopped
|
||||
# Multi-homed: the agent mesh (default) for spawned agents / panel /
|
||||
# ollama, plus the data network for postgres/redis.
|
||||
# ollama, the data network for postgres/redis, plus render to reach the
|
||||
# isolated video-renderer sidecar.
|
||||
networks:
|
||||
- default
|
||||
- data
|
||||
- render
|
||||
ports:
|
||||
- "8000:8000"
|
||||
environment:
|
||||
@@ -373,3 +380,9 @@ networks:
|
||||
# ports keep working.
|
||||
data:
|
||||
name: roboco_data
|
||||
# Sidecar isolation: video-renderer executes agent-authored composition
|
||||
# HTML/JS in headless Chrome. It lives ONLY here, reachable only by the
|
||||
# orchestrator (multi-homed onto this network too); it can reach nothing
|
||||
# else on roboco_default or roboco_data.
|
||||
render:
|
||||
name: roboco_render
|
||||
|
||||
Reference in New Issue
Block a user