Change:
It looks like PR messed something up with fish environment as now connecting to a server with mosh fails giving fish: Unknown command 'mosh-server new -c 256 -s -l LANG=enUS.UTF-8 -l LCALL=enUS.UTF-8' fish: mosh-server 'new' '-c' '256' '-s' '-l' 'LANG=enUS.UTF-8' '-l' 'LCALL=enUS.UTF-8' I reverted the commit (it was mistakenly merged into 17.03) and mosh started working again. the system
I will likely not get a chance to really look into this until next week, but I will definitely figure out what went wrong here. Sorry about this! :-(
Don't worry too much, it's not something critical (hopefully it's the only thing affected). I'll try to sort this out though I have little experience here.
there's a fix in this commit:

Discussion:
environment.etc."fish/foreign-env/interactiveShellInit".text = cfge.interactiveShellInit; environment.etc."fish/nixos-env-preinit.fish".text = '' <del> # avoid clobbering the environment if it's been set by a parent shell </del> # This happens before $__fish_datadir/config.fish sets fish_function_path, so it is currently # unset. We set it and then completely erase it, leaving its configuration to $__fish_datadir/config.fish set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $__fish_datadir/functions

environment.etc."fish/config.fish".text = '' # /etc/fish/config.fish: DO NOT EDIT -- this file has been generated automatically. <del> # if our parent shell didn't source the general config, do it </del> <ins> # if we haven't sourced the general config, do it </ins> if not set -q __fish_nixos_general_config_sourced set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $fish_function_path fenv source /etc/fish/foreign-env/shellInit > /dev/null

${cfg.shellInit} <del> # and leave a note to our children to spare them the same work set -gx __fish_nixos_general_config_sourced 1 </del> <ins> # and leave a note so we don't source this config section again from # this very shell (children will source the general config anew) set -g __fish_nixos_general_config_sourced 1 </ins> end <del> # if our parent shell didn't source the login config, do it </del> <ins> # if we haven't sourced the login config, do it </ins> status --is-login; and not set -q __fish_nixos_login_config_sourced and begin set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $fish_function_path

${cfg.loginShellInit} <del> # and leave a note to our children to spare them the same work set -gx __fish_nixos_login_config_sourced 1 </del> <ins> # and leave a note so we don't source this config section again from # this very shell (children will source the general config anew) set -g __fish_nixos_login_config_sourced 1 </ins> end <del> # if our parent shell didn't source the interactive config, do it </del> <ins> # if we haven't sourced the interactive config, do it </ins> status --is-interactive; and not set -q __fish_nixos_interactive_config_sourced and begin ${fishAliases}

${cfg.promptInit} ${cfg.interactiveShellInit} <del> # and leave a note to our children to spare them the same work set -gx __fish_nixos_interactive_config_sourced 1 </del> <ins> # and leave a note so we don't source this config section again from # this very shell (children will source the general config anew, # allowing configuration changes in, e.g, aliases, to propagate) set -g __fish_nixos_interactive_config_sourced 1 </ins> end '';

''; fishPreInitHooks = '' <del> # source nixos environment if we're a login shell </del> <ins> # source nixos environment # note that this is required: #   1. For all shells, not just login shells (mosh needs this as do some other command-line utilities) #   2. Before the shell is initialized, so that config snippets can find the commands they use on the PATH </ins> builtin status --is-login <ins> or test -z "$__fish_nixos_env_preinit_sourced" -a -z "$ETC_PROFILE_SOURCED" -a -z "$ETC_ZSHENV_SOURCED" </ins> and test -f /etc/fish/nixos-env-preinit.fish and source /etc/fish/nixos-env-preinit.fish <ins> and set -gx __fish_nixos_env_preinit_sourced 1 </ins> test -n "$NIX_PROFILES" and begin