Skip to content

fix(engram): point gentle-ai at our Engram binary - #116

Merged
barbatdev merged 1 commit into
mainfrom
fix/engram-caller-binary
Nov 3, 2026
Merged

barbatdev merged 1 commit into
mainfrom
fix/engram-caller-binary

Conversation

@barbatdev

Copy link
Copy Markdown
Owner

On the beta channel gentle-ai runs go install github.com/Gentleman-Programming/engram/cmd/engram@main (pre-v3 module path), which replaces Engram v3 with v1. Export GENTLE_AI_ENGRAM_BIN=$HOME/.local/bin/engram so gentle-ai uses that binary instead of installing one.

🤖 Generated with Claude Code

https://claude.ai/code/session_01A9D7phtzRBjJGKsHtaiVWj

@barbatdev
barbatdev merged commit 9da697a into main Nov 3, 2026
1 check passed
@barbatdev

Copy link
Copy Markdown
Owner Author

Post-merge QA (glm)

Lens: requirements + adversarial. The merge does what the PR promised: zsh/cortex-dotfiles.zsh now exports GENTLE_AI_ENGRAM_BIN (overridable) and docs/gs-sync.md documents the beta-channel pre-v3 install problem. The change is coherent and matches the later #117, which removes gs sync's dependence on the calling shell. One open question remains about fresh hosts, below; it is not a defect with evidence, so the verdict is clean.

Question (1)

  • Fresh host: export points at a binary that may not exist yet (zsh/cortex-dotfiles.zsh:302): The unconditional export GENTLE_AI_ENGRAM_BIN=${GENTLE_AI_ENGRAM_BIN:-$HOME/.local/bin/engram} is set on every shell, including a fresh host where gs sync has never run and ~/.local/bin/engram does not exist. What does gentle-ai do in that case: does it verify the path exists and fall back to its own install, or does it fail to exec the missing binary? The PR body only covers hosts where the binary is present. Not blocking (gs sync and the fix(gs): pass the built Engram to gentle-ai sync and isolated setup #117 fix cover the workshop flow, and the documented check is 'engram version reports 3.x after gs sync'), but worth an explicit answer.

Verdict: clean

@barbatdev

Copy link
Copy Markdown
Owner Author

Post-merge QA (deepseek)

Lens: evidence + test design. Adds export GENTLE_AI_ENGRAM_BIN="${GENTLE_AI_ENGRAM_BIN:-$HOME/.local/bin/engram}" to the shared zsh profile plus the docs section explaining why. The value it exports is the symlink that gs sync refreshes to the freshly built v3 binary, so the indirection is correct, and it is guard-defaulted so an explicit value still wins. There is no automated evidence in this commit: no test exercises the profile export, and the follow-up #117 later adds the gs-side export plus a test for it (the merged #115 script checks only GENTLE_AI_CHANNEL and GENTLE_SHELL_NO_AUTO_SETUP). The residual risk is the host that loads dotfiles but has never run gs sync: the variable then points at a symlink that may not exist, and gentle-ai skips its own install on the strength of a broken path.

Suggestion (1)

  • The profile export points at a path that only exists after a gs sync (zsh/cortex-dotfiles.zsh:304): The export is unconditional for every shell that loads the profile, including a host where ~/.local/bin/engram has never been created (fresh checkout, restored machine, or a box where gs sync failed before the symlink step). In that state the variable is set but names a missing file, and gentle-ai skips its own install because the override is present - so engram is absent rather than merely stale. Test conditions worth adding: evaluate the profile in a clean zsh -f with an empty HOME and assert the exported path is either absent or skipped when the target does not exist (e.g. defer to a [[ -x ]]-guarded export, same pattern as the PNPM_HOME block), then assert gs sync still refreshes the symlink target.

Verdict: clean

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant