Skip to content

v0.12.1

Choose a tag to compare

@comfuture comfuture released this 03 Aug 09:58

Fixes

Codori could not be installed as a service on Linux, and codori start reported a Tailscale refusal with no way to act on it. Verified on Ubuntu 22.04 (systemd 249, tailscale 1.98.10, Node from nvm).

Linux service install could never start

codori service install always failed at the last step:

SERVICE_COMMAND_FAILED: Command failed: systemctl --user enable --now codori-<id>.service

The generated unit quoted WorkingDirectory=. systemd does not strip those quotes; it treats them as part of the path and rejects the unit with path is not absolute. Every generated unit was unloadable, so no codori service verb could recover.

WorkingDirectory= now emits a bare path, while ExecStart= keeps its quotes. The two directives have different rules: WorkingDirectory= takes one raw path and is not split on whitespace, so it accepts spaces unquoted, whereas ExecStart= is a command line and needs the quotes.

A failed service command hid the reason

A systemctl failure printed only the command line. The underlying reason was captured but never displayed. Failures now include the platform's own message, and a unit-scoped systemd failure also names the follow-up systemctl status and journalctl commands.

Tailscale Serve permission

codori start warned Access denied: serve config denied. tailscaled runs as root and allows a serve config write only from root or a configured operator; reading status stays permitted, so the node looks eligible and only the write is refused. Codori now explains both remedies:

sudo tailscale set --operator=$USER
sudo tailscale serve --bg --yes --https=443 http://127.0.0.1:4310

Codori keeps serving on loopback either way; only the private HTTPS URL is unavailable until Serve is configured.

System-scope elevation hint

sudo codori ... does not work when Node is installed per user. sudo replaces PATH with its secure_path, so codori is either not found or its #!/usr/bin/env node shebang resolves to a distro Node too old to run the bundle. The printed command now preserves PATH:

sudo --preserve-env=PATH "$(command -v codori)" service install --scope system

Compatibility

Patch release. No public API, CLI surface, config format, or HTTP contract changed. An existing broken Linux install is repaired by running codori service install again, which rewrites the unit.

Closes #119 via #120.