revert(nix): drop forced zsh in the devshell - #214
Merged
Conversation
This reverts commit 8d8d3cf.
loss-and-quick
force-pushed
the
fix/nix-devshell-interactive-zsh
branch
from
July 7, 2026 17:33
80439a4 to
a735813
Compare
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reverts #208.
Summary
#208 added an unconditional
exec zshto the devshell shellHook. The hook runson every entry into the devshell, not just an interactive
nix develop, sothe
execalso fires fornix develop --command …, direnv, and any scripteduse — it replaces the process before the command runs, so the command
silently never executes: zsh reads EOF and exits 0, a false green.
This broke
nix develop --command:rustCI job (clippy/test/codegen), silently a no-op since feat(nix): Force use zsh in devshell #208;module(nightly + release) anddesktop-linuxjobs migrated tonix develop --commandin ci: use Nix devshell for module builds and desktop-linux smoke #213 — they'd build nothing while reporting success.Repro (on current
main)Why revert rather than guard it
Forcing a shell switch in a shared devshell is opinionated and surprising even
when correctly gated: it drops developers into a shell they didn't ask for and
sources their
~/.zshrconnix develop. Picking a shell is a per-developerchoice (direnv,
nix develop -c zsh, a personal wrapper), not something theshared flake — which CI and everyone else consume — should impose. Reverting
removes the whole class of problem instead of papering over it.
Verification
nix develop --command …runs the command again (marker created,cargofrom devshell)nix fmt nix/toolchain.nix— 0 changesnix build .#kasumi-desktopgreen (nix-build CI job)Notes for reviewers
Recommend merging promptly — several CI jobs on
mainare currently silent no-ops.