Bug Fixes
- Fixed
devenv --profile <name> <subcommand>failing when the profile name shadows a subcommand (e.g.devenv --profile test test). The profile value is now consumed before clap's subcommand precedence check (#2821). - Fixed Nix syntax errors in
devenv.nixbeing reported as unrelated warnings (e.g.warning: Ignoring the client-specified setting 'system'...) instead of the actual syntax error. Warning-prefixed log entries emitted before the failing operation no longer shadow the real diagnostic (#2820). - Fixed the shell hook's "exit on cd-out" feature silently breaking under
clean.enabled = true._DEVENV_HOOK_DIRis now always preserved across env cleaning, so the hook-spawned shell still exits when the usercds out of the project. Also aligned the fish hook's marker check with the posix one (non-empty value, not just "set"). - Fixed TUI panic ("attempt to read state after owner was dropped") when pressing Esc with content that fits in the viewport. The Esc handler now only scrolls when the ScrollView is actually mounted, matching the existing guard on up/down navigation.
- Fixed private cachix caches failing with HTTP 401 on
nix-cache-infoafter the v2.1 lazy cachix refactor.apply_store_settingsnow sets thenetrc-fileglobal before adding substituters, so the authenticated probe Nix sends when registering a private substituter picks up the credentials written by the cachix manager. - Fixed
devenv hook <shell>panicking withfailed printing to stdout: Broken pipe (os error 32)when its downstream reader (e.g.sourceindevenv hook fish | source) closes the pipe before the script is fully flushed.
Improvements
- Long log lines (structured logs, stack traces, etc.) in the TUI now wrap onto continuation rows instead of being truncated at the terminal width. Applies to both the inline log view (shown for selected/failed activities and
devenv upprocesses) and the expanded log view, matching the default behavior oflessandjournalctl. Carriage returns are also stripped from captured log lines so pty-induced CRLF endings no longer move the cursor mid-row and erase rendered content (#2818).