Repository navigation
fix(gs): pass the built Engram to gentle-ai sync and isolated setup - #117
Conversation
gs sync relied on the calling shell exporting GENTLE_AI_ENGRAM_BIN. Without it, gentle-shell --isolated setup let gentle-ai go install the pre-v3 Engram path, which fails on engram v3.
Post-merge QA (glm)Lens: requirements + adversarial. The merge does what the PR promised: cmd_sync exports GENTLE_AI_ENGRAM_BIN pointing at the Engram gs just built, before gentle-ai sync and gentle-shell isolated setup, and keeps a value already present in the environment. The docs (docs/gs-sync.md) were updated consistently with #116's text, and tests/gs_test.sh adds both the unset-env and explicit-value cases, including restoring the stubs afterwards. No production behavior change beyond the export; no acceptance gap found. No findings. Verdict: clean |
Post-merge QA (deepseek)Lens: evidence + test design. The export of GENTLE_AI_ENGRAM_BIN now happens inside cmd_sync, after Question (1)
Verdict: clean |
Problem
On workshop hosts,
gs syncfailed atgentle-shell setup (isolated home):gentle-ai's beta channel installs Engram from the pre-v3 module path, which no longer exists since engram moved to
/v3. gentle-ai skips that install whenGENTLE_AI_ENGRAM_BINis set, butgsrelied on the calling shell exporting it (zsh/cortex-dotfiles.zsh). A shell opened before the dotfiles update, or a host that doesn't load them, passed nothing. Andgs syncpulls the dotfiles at the end, so the run that brings the fix never applies it.Fix
cmd_syncnow exportsGENTLE_AI_ENGRAM_BINpointing at the Engram it just built, beforegentle-ai syncandgentle-shell --isolated setup. If the variable is already set in the environment, that value is kept.Tests
tests/gs_test.sh: with the variable unset, both steps get the built binary (saw this test fail before the fix).tests/gs_test.sh: an explicit value is kept.🤖 Generated with Claude Code
https://claude.ai/code/session_01A9D7phtzRBjJGKsHtaiVWj