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

feat(run): preserve local commands across Python replacement #248

Closed aly.codes
targeting main from feat/local-job-survival
Closed opened by and assigned to aly.codes
targeting main from feat/local-job-survival

Local commands started with run(...) now survive replacement of the conversation's Python process. A replacement can reconnect to the same job IDs, read retained output, and receive completion notices.

A daemon-owned helper reuses the existing command runner. Daemon shutdown, explicit kernel restart, session deletion, and workspace moves stop its commands. Remote commands keep their existing lifetime.

This takes the job-survival idea from #205 as a focused change within the current runtime.

Commits 0