fix(launcher): detach stdin on agent container run (#5)

pi print mode reads piped stdin until EOF; an attached terminal stdin
blocked the one-shot run forever. Automated contexts (closed stdin)
never exposed it. Request text comes from the compose command.

Proven: tail -f /dev/null | scripts/hello.sh now returns MOSAIC_HELLO_OK
in ~4s (previously timed out at 30s); verify.sh remains green.

Closes #5
This commit is contained in:
2026-09-02 19:50:07 -05:00
parent ce6420f3de
commit 0734b1f3a5
2 changed files with 6 additions and 2 deletions
+4 -1
View File
@@ -15,5 +15,8 @@ load_config
bootstrap_runtime_dir
# -T: no pseudo-TTY, so stdout is clean model output.
# </dev/null: detach stdin. Pi's print mode reads piped stdin until EOF;
# an interactive terminal would otherwise block it forever. The request
# text comes from the compose command, not stdin, so nothing is lost.
# Errors, if any, go to stderr for diagnostics.
docker compose run --rm -T mosaic-agent
docker compose run --rm -T mosaic-agent < /dev/null
+2 -1
View File
@@ -31,8 +31,9 @@ if ! docker image inspect "$IMAGE" >/dev/null 2>&1; then
fi
# 2. Run the agent request (stdout only = model response).
# stdin detached: see hello.sh — print mode would block on a terminal.
set +e
RESPONSE="$(docker compose run --rm -T mosaic-agent 2>/tmp/mosaic-poc-stderr.$$)"
RESPONSE="$(docker compose run --rm -T mosaic-agent </dev/null 2>/tmp/mosaic-poc-stderr.$$)"
RC=$?
set -e
STDERR_FILE="/tmp/mosaic-poc-stderr.$$"