- [2-1] executePersistent: add defer sess.mu.Unlock() so all return paths
release the session mutex. Remove explicit unlock calls.
- [2-2] Protect c.sessions map access in Execute with c.mu. Replace
c.Stop() in timeout/cancel path with per-session close/kill/delete so
only the affected profile session is cleaned up.
- [2-3] Add TestCLIExecutePersistentConsecutiveExecutes to verify the
same persistent profile can be executed consecutively without blocking.
Apply gofmt to all adapter files.
- CLI persistent 실행 중 ctx.Done() 발생 시 session을 정리하여 늦은 출력이
다음 run에 섞이는 문제 해결
- CLI Execute에서 mutex lock/unlock 구조를 개선하여 race condition 방지
- Registry.Stop이 모든 lifecycle adapter의 Stop을 시도하고, errors.Join 대신
first error 패턴으로 변경하여 한 adapter의 실패가 다른 adapter 정리를 막지 않도록 수정
- timeout 후 session 오염 방지 회귀 테스트 추가
- registry stop failure 후에도 preceding adapter stop이 호출되는 테스트 추가
- CLI partial profile rollback 테스트 강화