small gleam coding and persistent agent daemon with a detachable cli and a canvas ui albedo.sh

fix(run): report a job stop that left its group running #258

Merged aly.codes
targeting main from fix/report-unconfirmed-job-stop
Merged opened by and assigned to aly.codes
targeting main from fix/report-unconfirmed-job-stop

Stopping a job on a remote kernel could report success even though the job was still running.

The daemon stops a local kernel's jobs itself. A remote kernel's jobs are out of its reach, so it asks that kernel to stop them. On the kernel, the run plugin's stop handler ignored the result of the termination and always answered ok, even when the process group survived SIGKILL. It now answers with an error carrying the termination report, as the on_stop_job contract in albedo_api.py already describes.

This came out of #248, which is closed.

The remote plugin's ssh fallback stop also always answers ok. That one is left alone: killing the local ssh client can't confirm what happened on the remote host, so it needs its own decision.

Commits 0