I haven't dug into this too hard yet, I will probably try and get strace on it if nobody knows why this isn't working:
$ echo -e '1\n2\n3' | selecta
# ui appears; I select "2"
2
$ set -x RESULT (echo -e '1\n2\n3' | selecta)
# nothing happens; next prompt immediately shown
# just to show that this is how you normally set something from a subshell in fish:
$ set -x RESULT (echo -e '1\n2\n3')
$ echo $RESULT
1 2 3
I'm guessing it's failing to get /dev/tty from within the subshell for some reason?