Skip to content

gaia2-cli: OpenClaw exec shell goes through the faketime wrapper - #112

Draft
johnh2o2 wants to merge 1 commit into
facebookresearch:mainfrom
johnh2o2:fix/openclaw-faketime-shell
Draft

johnh2o2 wants to merge 1 commit into
facebookresearch:mainfrom
johnh2o2:fix/openclaw-faketime-shell

Conversation

@johnh2o2

@johnh2o2 johnh2o2 commented Oct 15, 2026 •

Copy link
Copy Markdown

Change class: Evaluation validity — not an agent-exploit vector.

Summary

Route OpenClaw's exec shell through the faketime wrapper so agent shell commands see the scenario's simulated date.

Consequence addressed

su set SHELL=/usr/bin/bash and OpenClaw runs "$SHELL" -c, so agent commands ran the real bash and skipped the libfaketime wrapper (/home/agent/bin/bash). date printed the host date, so relative-date reasoning ("last Friday") was wrong for every model — the harness fed the wrong "now", making scores on time-relative tasks invalid/unfair. This is a validity bug, not the agent cheating. (Fix verified end-to-end: exp 37 B.e2e_openclaw_exec_tool_sees_sim_time = PASS on the fix; FAIL on the pre-fix control.)

Changes

Export SHELL=/home/agent/bin/bash in the agent env file (sourced after su). The Gaia2 CLIs read /tmp/faketime.rc themselves and are unaffected.

Testing

containers/openclaw/test_openclaw_config.py (+30) asserts the exec shell routes through the wrapper.


Part of a set of isolated gaia2-cli fixes developed while building an audio benchmark on top of the GAIA2 harness. Draft; no reviewers assigned yet.

gaia2-init-entrypoint.sh starts the agent with `su -s /usr/bin/bash agent`,
and su sets SHELL=/usr/bin/bash. OpenClaw's exec tool runs "$SHELL -c
<command>" (getShellConfig), so agent commands ran the real bash and
never went through /home/agent/bin/bash, the wrapper that preloads
libfaketime when /tmp/faketime.rc exists. OpenClaw also strips LD_* from
the exec env, so the gateway's own LD_PRELOAD does not reach them either.
Result: `date` in the agent shell printed the host date, not the
scenario's simulated date, and relative-date reasoning ("last Friday")
went wrong for every model.

Export SHELL=/home/agent/bin/bash in the agent env file, which is sourced
after su. The Gaia2 CLIs read /tmp/faketime.rc themselves and are
unaffected.
@meta-cla meta-cla Bot added the cla signed label Oct 15, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant