## semaphoreui/semaphore — v2.20.0-alpha1…v2.20.0-alpha2

_24 commits._

### Features
- **feat(logs): print worksace selected** (bb10ba1)
- **feat: persist user language preference** (51b0236)
- **feat(git): implement capped retry delay for git operations and add tests** (e4baf36)
- **feat(git): add retry mechanism for git clone and pull operations** (322fe09)

### Fixes
- **fix(config): remove extra json tag options** (c7add6d)
- **fix: add missing env tag for SEMAPHORE_RUNNER_EXECUTOR** (fee9f65)
- **fix: disable eslint** (1043d97)
- **fix(ui): prevent Enter in CLI args dialog from submitting parent form (#4092)** (94ee5e7)
- **fix/delete user error (#4147)** (90b2f64)
- **Potential fix for pull request finding** (3cda785)
- **fix: keep language change consistent on save failure** (46666ae)
- **Merge pull request #4148 from sabased/patch-1** (c89e1ab)

### Backend
- **Merge branch 'develop' of github.com:semaphoreui/semaphore into develop** (1c2755c)
- **Merge pull request #4140 from befika/sem-212-git-clone-retry** (c8fe2a0)
- **Merge branch 'develop' of github.com:semaphoreui/semaphore into develop** (071b312)
- **Merge pull request #4154 from adfinis-forks/missing-env-tags** (ae12f3a)
- **Merge pull request #4149 from semaphoreui/copilot/store-user-language-setting** (d614d19)
- **Make lang computed property reactive by deriving from $i18n.locale** (586e296)
- **Initial plan** (5fe5978)
- **Semaphore UI one-click deployment on Cloudzy** (4a1dd2d)
- **Merge remote-tracking branch 'upstream/develop' into sem-212-git-clone-retry** (0861626)

### Tests
- **test(e2e): add ids to ui elements** (703656b)

### Chore
- **ci: latest tag for helper image** (6421cb8)
- **ci(docker): use correct option** (fc39d5d)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/semaphoreui/semaphore?utm_source=github-action)._