bug: TOML-driven agent services lack FACTORY_REPO env and projects/env/state volume mounts — sidecar silently never polls #855
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
tech-debt
underspecified
vision
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#855
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
lib/generators.sh(TOML-driven[agents.X]→ compose service emission) omits two things the mainagentsservice has, both required for the agent to actually do any work:FACTORY_REPOenv var. Without it,/entrypoint.shnever executes the "Factory bootstrap: DISINTO_DIR switched to live checkout" branch — the container stays pinned on the baked/home/agent/disintodirectory../projects:/home/agent/disinto/projects:ro(and./.env,./state) volume mount. Without it, the bakedprojects/dir only contains*.toml.examplefiles (no realdisinto.toml).Combined, the polling loop
for toml in ${DISINTO_DIR}/projects/*.tomlmatches zero files, the loop body never runs, no dev-poll ever spawns, and the container sits in an apparently-healthy sleep loop doing nothing. No error is logged — it just silently does nothing forever.Confirmed today on
disinto-agents-llama: container was up, entrypoint logged "Entering polling loop (interval: 60s, roles: dev)",sleep 60was running — but noProcessing project TOML/Running dev-poll (iteration N)lines ever appeared.Repro
disinto hire-an-agent dev-qwen dev --local-model <url> --model <name>.COMPOSE_PROFILES=agents-llamain.env(to work around #845).disinto up.docker exec disinto-agents-llama ls /home/agent/disinto/projects/→ only*.toml.examplefiles.docker exec disinto-agents-llama bash -c 'echo $FACTORY_REPO'→ empty.docker exec disinto-agents-llama tail /home/agent/data/agent-entrypoint.log→ noProcessing project TOMLentries.Why subtle
docker ps(healthcheck only pgrepsentrypoint.sh, which is alive).forloop over a zero-match glob just exits silently.Dev-qwen ran for days on the legacy
ENABLE_LLAMA_AGENT=1service block (which DID include the projects mount). Switching activation paths viahire-an-agentsilently downgraded the sidecar to a zombie.Fix
In
_generate_local_model_services(or whichever helper emits per-agent services), emit:Exactly matching the main
agentsservice block (which works correctly).Secondary: add a generate-time (or entrypoint-time) assertion that
$DISINTO_DIR/projects/*.tomlmatches at least one real file, and fail loudly otherwise. The silent-zombie mode is the worst kind of failure.Acceptance
hire-an-agent X, the generated service forXhas the three volume mounts andFACTORY_REPOenv.disinto up --profile agents-Xbrings up a sidecar that logsProcessing project TOMLandRunning dev-pollwithin the first poll interval.Related: #845 (profile drift), #846 (activation paths), #847 (secrets), #852 (hyphen env-var), #853 (image ref).
cdfails silently #861