ci: harden soul-contract-gate boot for the Linux runner
Neuron Soul CI / build (pull_request) Has been cancelled
Neuron Soul CI / deploy (pull_request) Has been cancelled

The gate booted the soul with `env -i`, which strips the ambient
environment — including the library path the dynamically-linked soul needs
on the GCE CI runner. The soul never came up there, so the gate failed the
build (run 3384) even though the soul is correct (the gate passes locally
against the exact published CI runtime). Switch to preserving the ambient
env and instead UNSET only the live-service vars (ENGRAM_URL/API keys/
identity) while pointing HOME + snapshot at throwaway paths and axon at a
dead port. Isolation is unchanged (verified: no touch of the live
soul/engram); the soul now boots on the runner.
This commit is contained in:
2026-07-18 13:59:02 -05:00
parent c199a13a7f
commit f0454650a2
+9 -2
View File
@@ -113,9 +113,16 @@ KNOWN_PENDING=(
)
# --- boot the soul -----------------------------------------------------------
# Preserve the ambient environment (PATH, LD_LIBRARY_PATH, TMPDIR) so the
# dynamically-linked soul finds its libs on any runner — using `env -i` here
# stripped the library path on the Linux CI runner and the soul never booted.
# Isolation is still guaranteed by UNSETTING the live-service vars (so it can
# never reach the real engram/axon or make an LLM call) and by pointing HOME +
# the snapshot at throwaway paths and the axon at a dead port.
echo "== booting soul: $SOUL on port $PORT (throwaway HOME=$THROW_HOME) =="
env -i \
PATH="/usr/bin:/bin:/usr/sbin:/sbin" \
env \
-u ENGRAM_URL -u ENGRAM_API_KEY -u SOUL_ENGRAM_URL \
-u ANTHROPIC_API_KEY -u NEURON_LLM_API_KEY -u SOUL_IDENTITY \
HOME="$THROW_HOME" \
NEURON_PORT="$PORT" \
SOUL_CGI_ID="ntn-contract-$$" \