v0.104.0 — launch your own build of an engine
Sometimes the copy of an engine that PATH finds first is not the one you mean. You are running a fork that carries a patch its upstream has not taken, or a debug build you are bisecting, and moshcode keeps opening the packaged release instead.
This release adds a way to say so. MOSHCODE_ENGINE_BIN_CODEX=/path/to/codex makes moshcode launch that executable for the codex engine, and the same shape works for every engine in the table: the key is the engine name upcased, with anything outside A-Z0-9 replaced by _.
export MOSHCODE_ENGINE_BIN_CODEX=~/.moshcode/engines/codex/bin/codex
moshcode codexThe case that prompted it is codex specifically. openai/codex accepts no external pull requests — its contributing guide says so outright, and GitHub refuses the request from a fork — so a fix you want has nowhere to land except a build you make yourself. Arrow-key navigation between earlier prompts, so that rewinding a conversation no longer shares a key with "interrupt the running turn", is one such fix. It lives in ralyodio/codex-dx, filed upstream as openai/codex#47300, and stays there until they take it. Before this release there was no way to point moshcode at that build.
The override is unset by default, and deliberately so. With nothing set, an engine's declared name is resolved against PATH exactly as before, which is the behaviour every engine here documents and every test relies on. An override is a claim to know better than PATH for one engine, so it is only ever made out loud, and an empty or whitespace-only value counts as unset rather than as an empty command. It is applied once where the engine table is built rather than at each launch site, because bin is read directly by the CLI, the TUI's error messages, the swarm and the MCP bridge, and an override that only some of them honoured would be worse than none.