{"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > admits only one concurrent starter reclaiming a stale socket"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > admits only one concurrent starter reclaiming a stale socket"}} {"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > preserves a pre-existing token dangling symlink when token writing fails"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > preserves a pre-existing token dangling symlink when token writing fails"}} {"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > preserves a pre-existing token directory when token writing fails"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > preserves a pre-existing token directory when token writing fails"}} {"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > refuses a different socket sharing an active store"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > refuses a different socket sharing an active store"}} {"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > refuses a second service without replacing the first token or listener"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > refuses a second service without replacing the first token or listener"}} {"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > refuses requests before initialization and rolls back a socket chmod failure"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > refuses requests before initialization and rolls back a socket chmod failure"}} {"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > removes the socket and token when it stops, and replaces a socket file left behind"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > removes the socket and token when it stops, and replaces a socket file left behind"}} {"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > rolls back a startup failure and releases ownership for another start"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > rolls back a startup failure and releases ownership for another start"}} {"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > runs an enqueued job to its end"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > runs an enqueued job to its end"}} {"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > serves the API on a private socket with a private token and store"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > serves the API on a private socket with a private token and store"}} {"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > throws when something other than a socket file stands at the socket path"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > throws when something other than a socket file stands at the socket path"}} {"date":"2026-10-05","from":{"k":"unit","s":"cli","n":"startLocalJobs() > throws when the profile file cannot be read"},"to":{"k":"unit","s":"agent-runner","n":"startLocalJobs() > throws when the profile file cannot be read"}}