Skip to content

v0.119.0

Choose a tag to compare

@davidfarah2003 davidfarah2003 released this 28 Oct 18:02
f915934

Install or update: npm i -g cotal-ai@0.119.0

Changes in this release

  • Add cotal daemon setup, one command that connects a headless machine to a space.

    It installs the daemon as a systemd user service, waits for it to answer, signs it in by device code when it is not signed in already, asks the space to register it, and connects it once the space owner approves. No local browser is needed anywhere on that path: the sign-in prints an approval link and code to open on another device. It prints one plain line per stage to stderr, so --json still writes one document on stdout.

    Every stage is skipped when it is already done, so running it again after an interruption continues rather than starting over. --wait <seconds> bounds the wait for the owner's approval, 900 by default, and --wait 0 reports what it reached. A wait that runs out is a partial that says the service is installed and the registration is sent, so a rerun continues. An answer that cannot improve is a refusal carrying the space's own reason, and the connection stage is never reached. Only a connected machine exits 0.

    A daemon already answering while no installed unit is recorded for it refuses CONFLICT (RUNNING_WITHOUT_UNIT), because installing then would start a second daemon that the lifetime lock refuses and the running one is not a persistent service. Pausing, renaming and disconnecting stay their own commands.

  • Keep a command wider than the terminal line on one line, so a copied line is the whole command.

    On an 80-column terminal the exec-endpoint next: of cotal service broke before --handler <file>, and the remedy of cotal service add <name> --preset exec-endpoint broke before its last <file>, both in the refusal line and in the --plain report's Next. Copying the first line gave a command without its last option, and copying both ran two commands. A command cell now overflows the line as one line, and so does a remedy that is one whole command: CommandFailure takes remedyIsCommand, which every terminal remedy path honours. A remedy that starts with a command and goes on as prose still wraps at its spaces. --json output is unchanged.

What's Changed

Full Changelog: v0.118.3...v0.119.0