pub(crate) fn ensure_state_dir() -> Result<(), String>Expand description
Creates ~/.choir at 0700 if it is not there.
0700 rather than the umask’s answer because everything this directory is about to hold — an actor key, a bearer token — is a secret, and a directory somebody else can list is a directory whose filenames tell them what to come back for.