dc87d15586
Port from nanocoai/nanoclaw#2748: Docker's built-in 64 MB /dev/shm silently breaks shared-memory-hungry workloads inside the sandbox — Chromium/Playwright renderers crash tabs, and PyTorch DataLoader workers die with 'bus error' / 'insufficient shared memory'. tmpfs is lazily allocated, so the higher ceiling costs nothing until actually used, and usage still counts against the container's --memory cgroup limit. - tools/environments/docker.py: --shm-size 1g in resource args (not cgroup-gated; tmpfs mount option). Skipped when docker_extra_args already sets --shm-size, or when configured empty/'0' (Docker default). - terminal.docker_shm_size config key (DEFAULT_CONFIG + all three config->TERMINAL_DOCKER_SHM_SIZE env bridges: CLI, gateway, config.py map) - tests: default emit, custom value, opt-out, extra_args precedence, helper edge cases (sabotage-verified: default/custom tests fail without the emit)