Pre-flight Checks
Problem Description
engram supports Homebrew, go install, and manual binary downloads, but has no first-class mise install path, and the repo declares no pinned toolchain of its own (contributors reconstruct Go/Node versions by reading go.mod and the CI workflows by hand). Separately, updateInstructions() (internal/version/check.go) only branches on runtime.GOOS, so a user who installed engram via mise is told to run brew upgrade engram or go install .../engram@latest — instructions that ignore (and can conflict with) the install mise already manages.
Proposed Solution
- Add a
mise.toml at the repo root pinning go and node to the versions the project already targets, plus a small CI guard script that fails a PR if that pin drifts from go.mod / the CI workflow files (so it can't silently go stale).
- Document installing engram via mise in
docs/INSTALLATION.md / README.md (macOS, Linux, and Windows — engram already ships Windows release archives).
- Teach
updateInstructions() to detect a mise-managed install and print mise upgrade engram instead of the Homebrew/go install hint in that case; every other install method keeps today's behavior unchanged.
Example:
mise use -g github:Gentleman-Programming/engram@latest
engram version
Companion registry submissions (separate, non-code, tracked outside this repo) are both merged now, so the shorter mise use -g engram@latest form will resolve once mise ships a release with the updated registry:
Affected Area
Other
Alternatives Considered
Leaving mise unsupported and only documenting Homebrew/go install/manual download — but this repo's own CI already needs a pinned Go/Node toolchain that contributors currently have to reconstruct by hand, and the update hint giving wrong advice to mise users is a real (if minor) correctness bug independent of mise adoption.
Pre-flight Checks
Problem Description
engram supports Homebrew,
go install, and manual binary downloads, but has no first-class mise install path, and the repo declares no pinned toolchain of its own (contributors reconstruct Go/Node versions by readinggo.modand the CI workflows by hand). Separately,updateInstructions()(internal/version/check.go) only branches onruntime.GOOS, so a user who installed engram via mise is told to runbrew upgrade engramorgo install .../engram@latest— instructions that ignore (and can conflict with) the install mise already manages.Proposed Solution
mise.tomlat the repo root pinninggoandnodeto the versions the project already targets, plus a small CI guard script that fails a PR if that pin drifts fromgo.mod/ the CI workflow files (so it can't silently go stale).docs/INSTALLATION.md/README.md(macOS, Linux, and Windows — engram already ships Windows release archives).updateInstructions()to detect a mise-managed install and printmise upgrade engraminstead of the Homebrew/go installhint in that case; every other install method keeps today's behavior unchanged.Example:
Companion registry submissions (separate, non-code, tracked outside this repo) are both merged now, so the shorter
mise use -g engram@latestform will resolve once mise ships a release with the updated registry:Affected Area
Other
Alternatives Considered
Leaving mise unsupported and only documenting Homebrew/
go install/manual download — but this repo's own CI already needs a pinned Go/Node toolchain that contributors currently have to reconstruct by hand, and the update hint giving wrong advice to mise users is a real (if minor) correctness bug independent of mise adoption.