6161
6262cat >> /etc/profile.d/dev-sandbox.sh << 'EXITSAVE '
6363if [[ "${DEV_MAIN_SHELL:-}" == "1" ]]; then
64- _dev_exit_saved=false
65- _dev_exit_save() {
66- [[ "$_dev_exit_saved" == true ]] && return
67- _dev_exit_saved=true
68- cd /workspace 2>/dev/null || return
69- git add -A 2>/dev/null
70- git reset HEAD -- AGENTS.md CLAUDE.md GEMINI.md .pr .issue .pnpm-store 2>/dev/null
71- git diff --cached --quiet 2>/dev/null && return
72- git commit -m 'on-exit save' --no-verify -q 2>/dev/null
64+ _dev_exit_flushed=false
65+ _dev_exit_flush() {
66+ [[ "$_dev_exit_flushed" == true ]] && return
67+ _dev_exit_flushed=true
68+ sync
7369 }
74- trap '_dev_exit_save ; exit' TERM
75- trap '_dev_exit_save ' EXIT
70+ trap '_dev_exit_flush ; exit' TERM
71+ trap '_dev_exit_flush ' EXIT
7672fi
7773EXITSAVE
7874
@@ -332,7 +328,7 @@ if [ -n "${DEV_TEMPLATE_KEY:-}" ]; then
332328- /opt/workspace/${_ref_name} — ${_ref_id} latest main (shallow, for browsing source)"
333329 done
334330
335- runuser -u dev -- bash -c " cat > /workspace/ AGENTS.md" << AGENTSMD
331+ runuser -u dev -- bash -c ' mkdir -p /home/dev/.claude /home/dev/.bob /home/dev/.gemini && tee /home/dev/.claude/CLAUDE.md /home/dev/.bob/ AGENTS.md /home/dev/.gemini/GEMINI.md >/dev/null ' << AGENTSMD
336332# Sandbox environment for ${_org} /${_repo}
337333
338334- /workspace is a shallow clone (1 commit). Work here.
@@ -358,8 +354,7 @@ Docker is NOT installed. Podman is the container runtime. Testcontainers works w
358354- .pr — PR details (\` gh pr view\` output), present when working on a pull request
359355- .issue — issue details (\` gh issue view\` output), present when working on an issue
360356AGENTSMD
361- runuser -u dev -- bash -c ' ln -sf AGENTS.md /workspace/CLAUDE.md && ln -sf AGENTS.md /workspace/GEMINI.md'
362- runuser -u dev -- bash -c ' printf "AGENTS.md\nCLAUDE.md\nGEMINI.md\n.pr\n.issue\n.pnpm-store\n" >> /workspace/.git/info/exclude'
357+ runuser -u dev -- bash -c ' printf ".pr\n.issue\n.pnpm-store\n" >> /workspace/.git/info/exclude'
363358 runuser -u dev -- git -C /workspace config core.untrackedCache true 2> /dev/null || true
364359 # Warm virtio-fs dentry cache for workspace + Claude Code binary (async)
365360 (runuser -u dev -- git -C /workspace status; cat /usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude.exe) & > /dev/null &
0 commit comments